읽기 전용으로 표시되는 USB 장치


122

우분투 14.04를 사용하고 있습니다.

8GB FAT32 USB 스틱과 500gb FAT32 HDD가 있습니다. 이 두 가지 모두 갑자기 읽기 전용 장치가되었습니다.

내부에서 디렉토리를 삭제 /media한 다음 다시 작성하여 이름을 바꾸고 해당 디렉토리에 전체 권한을 부여하려고했습니다. 그러나 이것은 작동하지 않았습니다.

결과 mount:

$ mount
/dev/sda5 on / type ext4 (rw,errors=remount-ro) 
proc on /proc type proc (rw,noexec,nosuid,nodev) 
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) 
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw) 
none on /sys/kernel/debug type debugfs (rw) 
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755) 
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620) 
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755) 
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880) 
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755) 
none on /sys/fs/pstore type pstore (rw) 
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=simon)

결과 sudo parted -l:

Model: ATA ST9500325AS (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End    Size    Type      File system     Flags
 4      1049kB  500GB  500GB   extended
 5      2097kB  496GB  496GB   logical   ext4
 6      496GB   500GB  4238MB  logical   linux-swap(v1)


Model: Verbatim STORE N GO (scsi)
Disk /dev/sdb: 8028MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      24.6kB  8028MB  8028MB  primary  fat32        boot

결과 lsblk:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465.8G  0 disk 
├─sda4   8:4    0     1K  0 part 
├─sda5   8:5    0 461.8G  0 part /
└─sda6   8:6    0     4G  0 part [SWAP]
sdb      8:16   1   7.5G  0 disk 
└─sdb1   8:17   1   7.5G  0 part /media/simon/LYDIA
sr0     11:0    1  1024M  0 rom 

USB 쓰기 테스트 :

$ cd /media/simon/LYDIA
$ touch newfile001
touch: cannot touch ‘newfile001’: Read-only file system 

결과 dmesg:

[  159.366772] FAT-fs (sdb1): Volume was not properly unmounted. Some data may be       corrupt. Please run fsck.
[  159.383252] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
[  159.383258] FAT-fs (sdb1): Filesystem has been set read-only
[  159.383571] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
[  159.384251] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
[  159.384319] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
[  159.475111] systemd-hostnamed[2966]: Warning: nss-myhostname is not installed.
Changing the local hostname might make it unresolveable. Please install nss-myhostname!
[  159.480141] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
[  159.480224] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
[  159.480497] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
[  159.480516] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
[ 2893.091767] wlan0: deauthenticating from c0:3e:0f:31:21:05 by local choice   (reason=3)

장착했을 때 그것을 질식 시키는가? 어떻게 마운트합니까? 루트로? 파일 관리자의 자동 마운트로 자동 마운트 하시겠습니까?
davidbaumann

나는 일반적으로 USB 스틱을 꽂은 다음 창이 나타나거나 파일을 열고 끌어다 놓을 수 있습니다. 나는 일반적으로 복사 또는 이와 유사한 것을 위해 터미널을 사용하지 않습니다.
oodles2do

플러그를 꽂고 열고 결과를 추가 mount하십시오.
davidbaumann

바보 같이 들리는 것이 아니라 정확히 무엇을 의미합니까? 터미널에 어떤 코드를 넣어야합니까? 그것이 당신이 의미하는 바라면 감사합니다!
oodles2do

mount정확히;)
davidbaumann

답변:


248

버그를 참조하십시오 .

노틸러스 (파일)를 종료하려면이 명령을 실행하십시오.

killall nautilus

45
와우, 나는 그것이 효과가 있다고 믿을 수 없다
JeD

11
나는 저주받을 것이다, 이것은 작동한다 haha
Tek

6
나는을 사용 nemo하고있어서 killall nemo작동합니다.
Oki Erie Rinaldi 4

14
2018 년에도 여전히 작동하는 것은 슬픈 일입니다 (Ubuntu 16.04.3 LTS)
Andrew

2
내가 본 이상한 수정. 여전히 우분투 18.04
CodeMonkey

74

USB 키를 랩톱에 연결할 때 :

  • 실행 sudo -i(항상 비밀번호를 입력하지 않도록)
  • 실행 df -Th(USB 스틱이 장착 된 위치를 확인하기 위해)
  • USB 스틱을 마운트 해제하십시오
  • 실행 dosfsck당신이 당신의 이전 명령에서 본 장치에. 예:dosfsck /dev/sdc1
  • USB 스틱을 분리했다가 다시 연결

문제가 해결되었습니다.

이제 HDD의 경우이 질문에 대한 답변을 따르십시오 . 외장 HDD에 관한 것이지만 귀하의 경우와 동일합니다.


1
당신의 도움을 주셔서 감사합니다! umount / dev / sdb1을 입력하면 USB 스틱을 마운트 해제하는 데 올바른지 입력 한 것입니까? 또한 dosfsck를 사용하는 방법을 모르겠습니다. 링크도 감사합니다
oodles2do

3
@SimonBremford USB가 /dev/sdb1물론 마운트되어 있으면 명령이 옳습니다. 다른 질문에 대해서는 다음과 같이 입력하십시오.dosfsck -a /dev/sdb1

23
도움을 주셔서 감사하지만 작동하지 않았습니다. USB 스틱은 여전히 ​​읽기 전용입니다. USB 스틱 자체가 아닌 Ubuntu의 문제라고 생각합니다. 그리고 동시에 하나 이상의 USB 장치에 영향을 미친다는 사실.
oodles2do

3
때로는 가장 쉬운 방법은 다시 시작하는 것입니다
Gayan Weerakutti

2
재부팅이 실제로 필요하다는 답변을 추가하는 것이 유용합니다.
Artem Pelenitsyn

20

GParted를 사용하여 파티션 테이블을 설정하고 USB 스틱을 포맷 할 때도 같은 오류가 발생합니다. 그 후 모든 USB 드라이브가 "읽기 전용"상태가되었습니다.

그러나 루트 복사에서 잘 작동했습니다 ...

컴퓨터를 다시 시작한 후 문제가 발생했습니다. 따라서 GParted를 사용할 때이 문제가 발생할 수 있습니다.


아래에 게시 된 작업 솔루션과 이에 Serrano대한 의견을 참조하십시오 . 뿐만 아니라 나를 위해 기원은 사용에서 온 GPated...
안토니오

16

나도이 문제가 있었다. USB 스틱에 복사하는 동안 오류가 발생했습니다. Caja 파일 관리자와 함께 Mint 17.1 cinnamon, 커널 3.13.0-43을 사용하고 있습니다.

터미널 'dir / media'의 미디어 디렉토리를 보았을 때 레이아웃이 변경되었음을 알았습니다. 일반적으로 여기에 나열된 드라이브가 표시되지만 이제는 사용자 이름 아래에 나열되며 무엇을 추측합니까? 해당 사용자 이름에는 루트 권한 만 있습니다.

내가 한 것은 타이핑하는 것이 었습니다

sudo chown [username] /media/[username]

sudo chgrp [username] /media/[username]

[username]을 사용자 이름으로 바꾸고 USB 스틱을 제거한 다음 기다렸다가 다시 넣습니다. 문제가 해결되었습니다. 이제 쓸 수 있습니다!


나를 sudo chown [username] /media/[username]위해 잘 작동했습니다. 나는 심지어 USB 스틱을 꺼낼 필요가 없었고 (나도 필요하지 않았다 chgrp-나는 Xubuntu 16.04에있다)
Nicolas

답변 주셔서 감사합니다. 미디어 자체에는 문제가 없지만 장착 지점에 문제가 있기 때문에 허용되는 답변이어야합니다.
agim

chown도 그룹을 변경할 수 있으며 chown [username]:[groupname] filesrunning chown과 같습니다 chgrp. 참조man chown
Xen2050

1
chown [username]: files`chown``이 기본적으로 사용자 로그인 그룹으로 설정되므로 @ Xen2050이 더 좋습니다 .
Lucas

@ 루카스 감사합니다. 그것은 man페이지에 영리하게 숨겨져 있지만 페이지에서 볼 수 있습니다 info[man & info 페이지가 일치하면 정말 좋을 것입니다 ...]
Xen2050

11

나는 우분투에서 같은 문제를 겪어 왔으며 여기에 주어진 대답 중 어느 것도 나를 위해 일하지 않았다. 내가 시도한 것은 다음과 같습니다.

  • GParted를 사용하여 장치를 포맷하십시오. 심지어 성공하지 않고 파티션 테이블을 다시 만들려고했습니다.
  • 로 장치를 확인하십시오 fsck. 문제가 발견되지 않았습니다.
  • 탑재 지점의 권한을 수정했습니다. 마운트 지점이 루트 소유 였음이 밝혀졌지만, 자신을 소유자로 만든 후에도 명령 줄을 통해서만 장치에 쓸 수있었습니다 (GUI에서 파일을 만들 수는 없음).

나는 USB 스틱을 연결하면, 그것은 아래에 장착됩니다 /media/<username>/<label>/여기서 <username>사용자 이름과 <label>USB 스틱 또는 저장 장치의 레이블입니다.

나는 권한을 다시 보았다.

$ ls -ld /media/<username>
drwxrwx---+ 2 <username> <username> 4096 Mar  4 18:32 /media/<username>

주목 +권한의 끝에서. 그것은 나에게 새로운 것이며 전에는 눈치 채지 못했습니다. 이는 디렉토리에 ACL (Access Control List)이라는 확장 권한이 있음을 의미합니다 (이 관련 질문 참조 ). 이 디렉토리에 대한 ACL 세부 사항을 나열했습니다.

$ getfacl /media/<username>
# file: <username>/
# owner: <username>
# group: <username>
user::rwx
user:<username>:r-x
group::---
mask::r-x
other::---

보시다시피, user:<username>:r-x내 사용자 이름에 대한 추가 항목이있어 읽기 권한 만 부여합니다. 나는 간단한 명령으로 이것을 고쳤다.

setfacl -m u:<username>:rwx /media/<username>

USB 장치를 분리했다가 다시 연결했는데 문제가 해결되었습니다.


1
승인. 고마워, 이것이 해결책이었다. 그러나 결국 restart your computer에는에 액세스 할 수 있어야합니다 mounted USBs. 내가 생각할만한 또 다른 요점은이 문제는에서 끝났다 creating a new gpt partition table는 것 USB stick입니다 GParted. 결과적으로 모든 USB가 영향을 받았습니다. 에있는 사람 GParted은 다르게 행동해야한다 ...
Antonio

9

Gparted를 사용하여 형식을 지정했습니다. 디스크의 모든 데이터가 지워지고 문제가 해결되었습니다.


1
예, 잘 작동합니다. msdos유형 으로 새 partiton 테이블 을 작성한 다음 fat32를 사용하여 하나의 큰 패리티 턴을 작성 해야합니다 .
vskubriev

1
이 답변은 스텁이라고 생각합니다. 확장하십시오.
Léo Léopold Hertz 준영

6

mountsda5 (your /) 만 마운트 되었을 때 읽고 쓰기 ( rw)되었으므로 쓸 수 있어야합니다. 일반적으로, 같은 디렉토리의 대부분은 /sys, /bin루트 (당신이 필요로하는 것에만 쓸 수 있습니다 sudo첫번째),하지만 홈 폴더는 일반 사용자에게 쓰기 가능해야한다.

홈 폴더에 파일을 만들 수 있습니까? 어쩌면 gui 파일 관리자가 읽기 전용이라고 생각할 수도 있습니다. 터미널에서 시도하면 작동합니까? 예를 들어, 이러한 명령이 작동합니까?

cd ~
touch newfile001
echo stuff >> newfile001
cat newfile001

성공적으로 작동하면 HD (sda5)에 쓸 수 있습니다.


USB 드라이브의 경우, 플러그를 꽂고 마운트 한 후 해당 드라이브 mount를 찾아 ( /dev/sdb1 ...라인) 살펴보고의 마운트 옵션 ()rw(읽기-쓰기) 인지 확인한 후 쓸 수 있어야합니다. 그것이 ro(읽기 전용) 있다면 이것을 시도하고 그것이 변경되는지 확인하십시오 :

sudo mount -o remount,rw /dev/sdb1 /media/simon/LYDIA

파일 시스템 (fs)에 오류가있는 경우로 마운트 될 수 ro있으며 dmesg&에 메시지가 있어야합니다 /var/log/syslog. 이것은 당신의 로그가 보여주는 것입니다 :

[  159.366772] FAT-fs (sdb1): Volume was not properly unmounted. Some data may  
be corrupt. Please run fsck.
[  159.383252] FAT-fs (sdb1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
[  159.383258] FAT-fs (sdb1): Filesystem has been set read-only

여기에는 fs가 어떻게 손상 될 수 있는지에 대한 단서가 포함됩니다. "올바로 마운트 해제되지 않았습니다"는 무엇이든 분리하기 전에 항상 마운트 해제해야합니다. 대부분의 파일 관리자에는이를 도와주는 "꺼내기"가 있습니다.

dmesg: 로그는 또한 그것을 해결하는 방법을 말한다 fsck는 바로 체크 프로그램을 선택하려고 FS 오류를 수정하려고하거나 명시 적으로 하나를 선택할 수 있습니다fsck.vfat 또는 fsck.[other]누른 TAB후하는 fsck.옵션을 나열합니다.

  • FAT 시스템의 경우 (종종 두 번 실행해야하며 항상 모든 오류를 처음 수정하지는 않습니다)
    • fsck.vfat -vaV [device] 자동으로 작동 (-a)하고 더 많은 정보를 표시 (-v)하고 "확인"패스 (-V)를 수행해야합니다.
    • fsck.vfat -a [device]

참고 : 이렇게하면 파일 시스템이 고정 된 상태로 유지된다고 보장 할 수 없으며 다시 손상 될 수 있으며 정확한 이유를 알 수 없을 수도 있습니다. USB 드라이브를 제거하기 전에 항상 마운트 해제 / "꺼내기"하십시오.

참고 FS의 경우 와 같은 마운트rw ,하지만 오류가 볼 수 있습니다 및이됩니다 자동으로 다시 마운트ro , 마운트 명령이 있습니다 아직 장착 보고서rw . 이 파일을 살펴보면 less /proc/mounts일반적으로보다 신뢰할 수있는 정보가 표시됩니다 (참조man mount ).


무언가가 마운트 rw되었지만 여전히 파일을 추가 / 삭제 / 편집 할 수없는 경우 파일의 소유자가 아닐 수 있습니다. 일부 fs에서는 chown소유자가 될 수 있지만 sdb1과 같은 FAT32 fs에는 해당 권한이 없습니다. 마운트 옵션으로 마운트 할 때 설정됩니다 uid=value(값은 사용자 ID, echo $UID또는로 배우십시오 id -u). 이를 시도하고 나중에 작동하는지 확인할 수 있습니다.

sudo mount -o remount,rw,uid=[userid] /dev/sdb1 /media/simon/LYDIA
  • 참고 : 때로는 파일 시스템 / 드라이브에 쓸 수있는 마운트 변경을 "알려"주기 위해 gui 파일 관리자를 다시 시작해야 할 수도 있지만 터미널은 항상 작동해야합니다.

위에서 작동하지 않는 경우 또는 시도 sudo su아무것도 (와 USB에 파일을 읽고 쓸 수 있는지 확인하기 위해, "가"루트 touch, echo등)?


귀하의 답변에 감사드립니다. newfile001 명령을 수행했으며 응답으로 "stuff"를 받았습니다. 또한 마운트 명령에서 USB 스틱의 브래킷에 rw가 있으므로 읽을 수 있습니다. 방금 답변 끝에 명령을 시도했지만 작동하지 않았지만 여전히 읽기 전용 장치입니다.
oodles2do December

적어도 HD가 작동하고 있습니다 ... USB는 쓰기 가능해야합니다 ... cdUSB 폴더에 있다면 echo stuff >> newusbfile비슷한 파일을 쓸 수 있습니까? 아니면 echo stuff | sudo tee newusbfile? 아니면 먼저 sudo su루트가 된 다음 에코, 고양이 등이됩니까?
Xen2050

cd 명령을 USB 폴더로 어떻게합니까? 방금 / media / simon에 넣은 것 같았지만 USB는 / media / simon / LYDIA
oodles2do December

USB가 마운트되지 않은 경우 / media / simon / LYDIA는 빈 폴더입니다 (있는 경우). 마운트 된 후에는 마운트 된 폴더가 mountor lsblk인 위치를 cd mounted_folder확인한 다음 파일 mkdirsudo su을 작성하고 루트로 쓸 수 있는지 확인할 수 있습니다.
Xen2050

모든 도움을 주셔서 감사합니다. 파일을 USB 파일에 쓰려고 시도했지만 작동하지 않았습니다. 읽기 전용 파일 시스템이라고합니다. 질문에 코드를 추가하여 내가 한 일을 볼 수 있습니다.
oodles2do

4

이동 디스크 .

USB 드라이브를 선택하십시오.

추가 파티션 옵션을 클릭하고 파티션 포맷을 선택하십시오 .

그런 다음 지우기 0으로 기존 데이터 덮어 쓰기 (느리게)를 선택 하고 FAT를 입력하십시오 .

인터넷에서 검색 한 후 많은 것을 시도했지만 이것은 나를 위해 일했습니다.


1
드라이브의 모든 데이터가 지워집니다.
cst1992

NTFS가 필요한 경우 어떻게합니까? NTFS에서도 마찬가지입니다.
Vadim Kotov


0

빠른 수정 방법 :

방법 1

때때로 우리는 내가 겪는 어려움없이 bash에서 작업을 수행 할 수 있습니다 (Sudo 필요 없음)

mkdir /media/$USER/mydrive/myfolder
cp -r src/ /media/$USER/mydrive/myfolder

그러나 때로는 파일 브라우저를 사용해야 할 때

sudo nautilus /media/$USER/mydrive/

참고 : 이것은 빠른 수정입니다. 위의 다른 답변이 작동하지 않아 좌절하는 경우에만 사용하십시오

방법 2

OS 재부팅


0

아래 전략을 시도하십시오

  1. 수퍼 유저로 /etc/fuse.conf 편집

    변경 #user_allow_otheruser_allow_other

  2. 외부 장치에 대한 쓰기 지원 활성화

    • sudo apt-get install ntfs-config
    • sudo ntfs-config

0

파일 시스템이 NTFS이고 안전하지 않은 상태에 있기 때문입니다. 아마도 Windows에서 디스크를 사용하고있을 수 있습니다. 그 이유 중 하나는 창을 최대 절전 모드로 설정하거나 빠르게 다시 시작했기 때문입니다. 따라서 다음 단계 중 하나를 사용하십시오.

  1. 아래 명령을 사용하여 미디어를 마운트 해제하고 Windows (이중 부팅 모드 또는 다른 컴퓨터)로 이동하여 최대 절전 모드 나 빠른 다시 시작이 아닌 창을 완전히 종료하십시오.

    sudo umount /media/"your media label"

그런 다음 Linux로 다시 와서 다음 명령을 사용하여 미디어를 마운트하십시오.

'sudo mount -o rw,mount /your media'
  1. macOs를 사용하는 경우 매체를 Mac 장치에 연결하고 다음 명령을 사용하십시오.

    'sudo / usr / sbin / diskutil disableJournal / Volumes / name-of-media'


0

필요한 것은 3 가지 명령을 따르는 것입니다.

  1. df -Th

결과- 여기에 이미지 설명을 입력하십시오

  1. umount /media/user/KINGSTON (이것은 경로에 마운트됩니다)
  2. dosfsck -a /dev/sdb1 (이것은 파일 시스템 경로입니다)

0

터미널 (ubuntu)에서 다음 명령을 실행하여 Pendrive에 쓰기 권한을 부여하십시오.

  1. df -Th
  2. umount /media/madusanka/KINGSTON

    • "/ media / madusanka / KINGSTON"은 첫 번째 명령으로 제공되는 "마운트 온"값입니다.
  3. sudo dosfsck -a /dev/sdb1

    • "/ dev / sdb1"은 첫 번째 명령으로 제공되는 "파일 시스템"값입니다.
  4. 비밀번호를 입력하십시오

  5. 붙여 넣거나 새 파일을 만들어 Pendrive를 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.