USB에서 ISO 9660를 제거하는 방법?


22

어떻게 든 iso 9660 이미지를 USB 드라이브에 쓸 수있어 모든 컴퓨터에서 장치가 실제로 CD라고 생각합니다. 이 파티션을 제거하는 다양한 방법을 시도했지만 아무것도 작동하지 않는 것 같습니다. 나는 시도했다 fdisk.

$ fdisk -l / dev / sdb
/ dev / sdb를 열 수 없습니다
이 장치에서 사용하려고 할 때 parted 충돌이 발생합니다.

나는 심지어 시도했다

$ dd if = / dev / zero of = / dev / sdb
그러나 출력 (화면 또는 디스크)없이 중단됩니다. 그러나 USB를 연결하면 USB가 마운트되며 파일을 볼 수는 있지만 편집 할 수는 없습니다.

편집 : 이제 결과는

$ dd if = / dev / zero of = / dev / sdb
dd :`/ dev / sdb '열기 : 읽기 전용 파일 시스템

또한 Windows에서 다시 포맷을 시도했지만 포맷 프로세스가 끝나면 "드라이브를 포맷 할 수 없습니다"라고 표시됩니다.

이 파티션을 제거하고 전체 USB 드라이브를 다시 정상으로 되돌리려면 어떻게해야합니까?

편집 1 : 간단한 시도 mkfs가 작동하지 않습니다.

$ sudo mkfs -t vfat / dev / sdb
mkfs.vfat 3.0.0 (2008 년 9 월 28 일)
mkfs.vfat : 전체 디스크 장치 '/ dev / sdb'에 파일 시스템을 만들지 않습니다 (원하는 경우 -I를 사용하십시오)
나는 할 수 없어 mkfs에서 /dev/sdb1와 같이, 이러한 파티션이 없기 때문에 :
$ ls / dev | grep sdb
sdb

편집 2 : 이것은 장치를 연결할 때 dmesg가 게시 한 정보입니다.

$ dmesg
.
. (한조각)
.
usb 2-1 : 새 USB 장치가 발견되었습니다. idVendor = 058f, idProduct = 6387
usb 2-1 : 새 USB 장치 문자열 : Mfr = 1, Product = 2, SerialNumber = 3
usb 2-1 : 제품 : 대용량 저장 장치
USB 2-1 : 제조업체 : 일반
usb 2-1 : 일련 번호 : G0905000000000010885
usb-storage : 4에서 발견 된 장치
usb-storage : 스캔하기 전에 장치가 안정 될 때까지 기다리는 중
USB 저장 장치 스캔 완료
scsi 6 : 0 : 0 : 0 : 직접 액세스 플래시 드라이브 AU_USB20 8.07 PQ : 0 ANSI : 2
sd 6 : 0 : 0 : 0 : [sdb] 4069376 512 바이트 하드웨어 섹터 (2084MB)
sd 6 : 0 : 0 : 0 : [sdb] 쓰기 방지가 해제되었습니다
sd 6 : 0 : 0 : 0 : [sdb] 모드 감지 : 03 00 00 00
sd 6 : 0 : 0 : 0 : [sdb] 드라이브 캐시 가정 : 쓰루
sd 6 : 0 : 0 : 0 : [sdb] 4069376 512 바이트 하드웨어 섹터 (2084MB)
sd 6 : 0 : 0 : 0 : [sdb] 쓰기 방지가 해제되었습니다
sd 6 : 0 : 0 : 0 : [sdb] 모드 감지 : 03 00 00 00
sd 6 : 0 : 0 : 0 : [sdb] 드라이브 캐시 가정 : 쓰루
 sdb : 알 수없는 파티션 테이블
sd 6 : 0 : 0 : 0 : [sdb] 연결된 SCSI 이동식 디스크
sd 6 : 0 : 0 : 0 : 연결된 scsi 일반 sg2 유형 0
ISO 9660 확장 : Microsoft Joliet Level 3
ISO 9660 확장 : RRIP_1991A
SELinux : 초기화 (dev sdb, iso9660 유형), genfs_contexts 사용
CE : hpet을 min_delta_ns에서 15000nsec로 증가
장치가 ISO 9660로하고 있음을 포맷하는 것이이 쇼 입니다 /dev/sdb .

편집 3 : 이것은 새 파티션 테이블을 dmesg실행 cfdisk하고 디스크에 쓴 후 맨 아래에 나타나는 메시지입니다 .

SELinux : 초기화 (dev sdb, iso9660 유형), genfs_contexts 사용
sd 17 : 0 : 0 : 0 : [sdb] 장치 준비 안 됨 : 감지 키 : 준비 안 됨 [현재] 
sd 17 : 0 : 0 : 0 : [sdb] 장치 준비 안 됨 : <> ASC = 0xff ASCQ = 0xffASC = 0xff <> ASCQ = 0xff
end_request : I / O 오류, dev sdb, 섹터 0
장치 sdb의 버퍼 I / O 오류, 논리 블록 0
sdb의 I / O 오류로 인한 페이지 쓰기 손실


항상 / dev / sdb에로드되고 있습니까? 장치가 설치된 후 / var / log / messages의 끝을 보면 자동 마운트와 관련된 로그 메시지가 표시됩니다.
mas

3
현재 cdfs 또는 이와 동등한 장치로 마운트되어 있지 않습니까?
RBerteig

1
@ Slink84 : 방금 갔다고 생각 sudo dd if=some.iso of=/dev/sdb합니다. 할 수있는 일을 기억할 수 없습니다.
a_m0d

1
이미지는 eeebuntu-3.0.0 표준 이미지입니다. 누가 장치를 만드는지 모르지만, 그것이 Toshiba 인 것 같습니다
a_m0d

1
VID / PID 쌍에서 "Alcor Micro Corp."에 의해 만들어졌으며 "Transcend JetFlash Flash Drive"입니다. linux-usb.org/usb.ids 에 있는 목록을 사용하여 이러한 것들을 찾아 봅니다.
RBerteig

답변:


8

이 경우에는 (Iso-9660 파일 시스템을 드라이브에 쓸 때) 무언가가 드라이브에서 어떤 형태의 내부 쓰기 보호를 트리거 한 것으로 나타났습니다. 거기 에는 외부 쓰기 보호 / 홀드 스위치,하지만 아직이의 출력 dmesg내가 실행할 때

dd if=/dev/zero of=/dev/sdb

루트로 :

sd 9 : 0 : 0 : 0 : [sdb] 추가. 감지 : 쓰기 방지
end_request : I / O 오류, dev sdb, 섹터 4028744
sd 9 : 0 : 0 : 0 : [sdb] 결과 : hostbyte = DID_OK driverbyte = DRIVER_SENSE, SUGGEST_OK
sd 9 : 0 : 0 : 0 : [sdb] 감지 키 : 데이터 보호 [현재] 
정보 fld = 0x0

보호에 대한 의견이 있습니다! 그러나 장치를 연결하면

scsi 10 : 0 : 0 : 0 : 직접 액세스 플래시 드라이브 AU_USB20 8.07 PQ : 0 ANSI : 2
sd 10 : 0 : 0 : 0 : [sdb] 4069376 512 바이트 하드웨어 섹터 (2084MB)
sd 10 : 0 : 0 : 0 : [sdb] 쓰기 방지가 해제되었습니다
sd 10 : 0 : 0 : 0 : [sdb] 모드 감지 : 03 00 00 00
sd 10 : 0 : 0 : 0 : [sdb] 드라이브 캐시 가정 : 쓰루
sd 10 : 0 : 0 : 0 : [sdb] 4069376 512 바이트 하드웨어 섹터 (2084MB)
sd 10 : 0 : 0 : 0 : [sdb] 쓰기 방지가 해제되었습니다
sd 10 : 0 : 0 : 0 : [sdb] 모드 감지 : 03 00 00 00
sd 10 : 0 : 0 : 0 : [sdb] 드라이브 캐시 가정 : 쓰루

이 메시지는 장치가 쓰기 방지 되어 있지 않다는 것을 나타냅니다 . 불행히도 디스크에는 디스크가있는 것처럼 보입니다 (예 : kaput ).


FAT가 아닌 파일 시스템을 사용했을 때 플래시 장치에 대해 이야기 한 적이 있습니다 (FAT를 사용하여 어떤 블록이 사용되지 않고 폐기 될 수 있는지 알기 때문에). 나는 오랫동안 그것에 대해 들어 보지 못했고 빠른 Google 검색으로 그것에 대해 아무것도 찾을 수 없었습니다.
CesarB

지금까지 FAT 의존성을 언급 한 사람을 찾았습니다. linux.derkeiler.com/Mailing-Lists/Debian/2008-08/msg00761.html
CesarB 08.09.15

그것이 죽었다는 것을 유감으로 생각합니다 ... Heh, 나는 당신의 문제를 재현하지 못해서 다행입니다 :] 오래된 '일회용'드라이브에서 시도했지만 여전히 그것을 잃는 것은 슬프습니다 방법.
Kirill Strizhak

예, 특히 일주일 정도 밖에 안 되었기 때문에! 오 잘 ...
a_m0d 1

1
내가 찾은 것을 찾았습니다. lkml.org/lkml/2009/3/16/363 ( "일부 SDD 제조업체 (어떤 업체가 어떤 것인지 모르겠습니다)가 실제로 파티션 테이블을 검사하고 다른 일을하고 있습니다. 잘못된 파티션 테이블을 작성하면 영구적으로 차단됩니다. ")
CesarB

6

나는이 Linux sys 관리자에 익숙하지 않기 때문에 정확히 같은 문제가 발생했을 때 나는 내 방법에 열광하지 않고 찌르고 자극했지만 iso9660 fs를 제거하고 엄지 드라이브를 되 찾을 수있었습니다.

sudo fdisk -l  /dev/sdb1

반환

Disk /dev/sdb1: 16.0 GB, 16037969920 bytes
64 heads, 32 sectors/track, 15295 cylinders, total 31324160 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I>/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x57155aa7

     Device Boot      Start         End      Blocks   Id  System
/dev/sdb1p1            2048    31324159    15661056    5  Extended

그래서 나는 시도했다

sudo fdisk /dev/sdb1

Command (m for help): m
Command action
  . . .

뒤에

Command (m for help): d Extended
Selected partition 1

Command (m for help): v
Remaining 31324159 unallocated 512-byte sectors

그런 다음 빈 dos 파티션 테이블을 만들기 위해 fdisk를 다시 선택하라는 메시지가 표시되면 나중에 원하는대로 덮어 쓸 수 있다고 생각했습니다.

Command (m for help): v
Remaining 31324159 unallocated 512-byte sectors

Command (m for help): o
Building a new DOS disklabel with disk identifier 0xea06616f.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

나는 적어도 iso9660 fs를 "파산"했음을 의미하는 리턴 된 메시지를 가져 와서 mkfs를 시도했다.

sudo mkfs /dev/sdb1

mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
979200 inodes, 3915520 blocks
.195776 blocks (5.00%) reserved for the super user
First data block=0
.Maximum filesystem blocks=4009754624
120 block groups
32768 blocks per group, 32768 fragments per group
8160 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

이 모든 것이 썸 드라이브에 "lost + found"디렉토리를 남겼습니다.

sudo mount /dev/sdb1 /media/
ls /media/
lost+found

마지막으로 Ubuntu 웹 사이트 ( http://www.ubuntu.com/download/ubuntu/download , 섹션 2)로 이동하여이 스틱을 사용하여 시험 사용을 위해 부팅 가능한 Ubuntu 이미지를 만들었습니다. 이런 방식으로 스틱에 만들어진 우분투 이미지의 장점은 쉽게 삭제할 수 있고 다른 용도로 스틱을 회수한다는 것입니다.

나는이 마지막 단계를 언급합니다. 왜냐하면 처음에는 그것이 효과가 있었을 지 모르겠습니다. 나는 몰랐습니다. 언급 한 바와 같이, 나는이 리눅스에 익숙하지 않고 가장 편리한 매체를 사용하여 라이브 CD에서 다른 배포판 (예 : Fedora, Ubuntu 등)을 시도하고 있으며, 그 과정에서 많은 것들을 깨뜨릴 것입니다.


문제가 해결되는지 확인하기 위해 귀하의 단계를 시도하고 싶지만 더 이상 막대기를 가지고있는 것 같지 않으므로 불행히도 그들이 도움이되는지 모르겠습니다. 그럼에도 불구하고, 이것은 여전히 ​​같은 문제를 가진 다른 사람들에게 도움이 될 수 있습니다.
a_m0d

5
mkdosfs -I /dev/sdb

드라이브에 vfat 파일 시스템을 만듭니다. 파일 시스템을 파티션이 아닌 전체 드라이브에 작성하려면 -I를 전달해야합니다. 드라이브를 먼저 분할하려면 fdisk를 사용하십시오. 물론 fdisk에는 파티션이 없으므로 드라이브를 읽을 수 없습니다. 그러나 나는 그것에 쓸 수있을 것이라고 확신합니다.


작동하지 않습니다-버전 번호를 인쇄하고 종료하십시오. 또한, FDISK는 "는 / dev / sdb에 쓸 수 없습니다"입니다
a_m0d

방금 명령을 시도하고 지정된 장치에 씁니다. 또한 버전 번호 만 인쇄합니다. dd로 작성한 일반 파일로이를 테스트 할 수 있습니다. od로 변경 한 내용을 볼 수 있습니다. 내 생각에 그것은 하드웨어 문제입니다.
Kim

1
위의 솔루션이 모두 실패했을 때 Centos 부팅 가능 이미지를 제거하는 데 도움이되었습니다.
Ⴖ uі

2

dmesg스 니펫을 보면 드라이브를 자동으로 마운트하는 것 같습니다 (로 확인 mount). 그것으로 무엇이든하기 전에 손으로 마운트해야합니다.

그런 다음 파티션 테이블 ( dd if=/dev/zero of=... bs=512 count=1)로 블록을 0으로 만들고 파티션 도구를 실행하여 빈 파티션 테이블을 다시 만듭니다. 그런 다음 플러그를 뽑았다가 다시 꽂고 (필요하지는 않지만 ...) 원하는 파티션을 작성 / 포맷하십시오. 파티션을 생성 한 후 (아마도 다시 연결을 끊었다가 다시 연결해야 함) /dev/sdb1파일 시스템을 만들어야하는 곳이 있습니다.

모든 단계는 루트로 ( sudo또는 이에 상응하는) 수행해야합니다 . 잘못된 장치 이름을 쓰지 않도록주의하십시오. 그렇지 않으면 하드 디스크를 닦을 수 있습니다!


1
나는 그것을했지만, 전체 디스크가 0으로 채워져있는 것처럼 보이지만 여전히 디스크를 마운트하고 읽습니다!
a_m0d

1

나는 여전히 우리가 진실이 아닌 것으로 판명되는 것을 가정하고 있다고 느낀다. 장치를 읽을 수 있기 때문에이 줄은 다른 프로그램의 해석에 의존하지 않고 최소한 데이터를 볼 수있게합니다.

dd if = / dev / sdb count = 1 | xxd -g1 -u

또한 장치 포트에있는 문제를 다른 포트에 강제로 적용하여 dev 노드의 문제와 장치의 문제를 분리 할 수 ​​있습니다. sdb를 사용하려면 다른 USB 잭에 꽂거나 다른 드라이브를 먼저 꽂으십시오.


hmm ...이 명령을 사용하면 장치가 0으로 채워져 있음을 알 수 dd if=/dev/zero of=/dev/sdb있습니다. 마지막으로 장치 를 실행 했기 때문일 수 있습니다. 그러나 페도라는 장치를 꽂아도 여전히 ISO9660 fs로 장치를 마운트합니다!
a_m0d

리눅스는 여전히 / etc / fstab을 사용합니까? 그곳에서 이러한 "연결"이 저장되었습니다.
gbarry

아니요, 사용 (I think) udev또는 드라이브를 자동으로 마운트하는 것이 무엇이든간에.
a_m0d

1

현재 USB 드라이브에 파티션 테이블이 없습니다. iso9660 파일 시스템은 전체 디스크에 직접 저장됩니다 (cdrom처럼).

sd 6:0:0:0: [sdb] Assuming drive cache: write through
 sdb: unknown partition table

먼저 파티션을 만들어야한다고 생각합니다

sudo cfdisk /dev/sdb

fdisk 응용 프로그램에서 (이전에 마운트되지 않았는지 확인) 새 파티션을 만듭니다.

그 후에 파일 시스템을 새 파티션에 만드십시오

sudo mkfs -t vfat /dev/sdb1

이것을 시도했다; cfdisk는 오류 메시지를 생성하지 않지만 간단히 살펴보면 dmesg실제로 오류 메시지가 표시됩니다. (위의 질문에 편집 3 참조)
a_m0d

1

나는 당신과 똑같은 문제가있었습니다. 그러나 놀라운 곳에서 해결책을 찾을 수있었습니다. 내가 소유 한 마지막 Windows 시스템 인 Windows 98SE가 설치된 오래된 노트북. 어쨌든 그냥 넣고 드라이브에 액세스하려고하면 Windows에서 포맷할지 묻습니다. 예를 클릭하면 완전히 작동하는 fat16 형식의 드라이브가 생깁니다. 그래도 최신 버전의 Windows에서 작동하는지 모르겠습니다. 행운을 빌어 요.


윈도우 8까지 :)
Sebastian Godelet


1

어제 밤에

dd if=fedora.iso of=sdx  

4 시간 후 나는 부팅 할 수없고 바꿀 수없는 iso9660 브릭을 가졌다. 데이비드의 생각에 따라 우분투의 '스타트 업 디스크 생성자'(대시로 '스타트 업 디스크 생성자'를 입력)라고 부르고 단순히 '삭제'를 선택했습니다. 그랬어.

그런 다음 USB 드라이브는 FAT32로보고되었으며 모두 정상입니다.


때로는 이와 같은 망치를 사용하는 것이 적절합니다. 드라이브의 처음 몇 부분에 무엇이 있는지 궁금합니다.
vgoff

0

드라이브를 제거하고 여전히 읽을 수 있는지 확인하십시오. 어떻게 든 / dev / usb (또는 어디에서 읽었 든)가 일반적인 파일 디렉토리가되었는지 궁금합니다.


이것을 다시 시도했습니다-다시 연결하면 잘 고정되어 모든 것을 잘 읽을 수 있습니다. 에 따르면 mountiso9660 파일 시스템입니다. 그러나 gparted는 드라이브에 2GB의 할당되지 않은 공간 만 표시합니다. dd/ dev / sdb는 읽기 전용 파일 시스템
이라고 불평

0

-t 옵션을 사용하여 다시 마운트하려고 했습니까?

umount / dev / sdb
sudo mount -t vfat / dev / sdb / mnt / point

그래도 문제가 해결되지 않으면 나중에 집에 도착했을 때 재현하려고 시도합니다. 흥미로운 문제인 것 같습니다. 함께 땜질하는 재미있을 것입니다 :]


mount파일 형식을 먼저 확인 하기 때문에 Hah, nah가 작동하지 않습니다
a_m0d

그렇다. 의심의 여지가 없다.] 더 이상 '파란색'아이디어는 더 이상 없다.
Kirill Strizhak

0

가장 좋은 방법은 다음과 같습니다.

# wipefs --all /dev/sdX

wipefs매뉴얼 에서와 같이 :

wipefs는 지정된 장치에서 파일 시스템, RAID 또는 파티션 테이블 서명 (매직 문자열)을 지워서 libblkid에 서명을 보이지 않게 할 수 있습니다.

wipefs는 파일 시스템 자체 나 장치의 다른 데이터를 지우지 않습니다. 옵션없이 사용하면 wipefs는 보이는 모든 파일 시스템과 기본 서명의 오프셋을 나열합니다.

wipefs는 파티션 테이블 서명을 지울 때 BLKRRPART ioctl을 호출하여 변경 사항을 커널에 알립니다.

이것은 변경 사항에 대해 커널에 알리는 것 (따라서 형식화 할 때 오류가 발생하지 않음)과 데이터 나 파일 시스템을 지우지 않는 등 많은 이점이 있습니다 .


-1

U3에는 U3 파티션을 제거하는 유틸리티가 있습니다. 또한 iso 9660을 생성하는 유틸리티로 생성 된 파티션 / 장치를 제거합니다. 이것은 u3 USB 스틱에서만 확인되었지만 현재 포맷이 가능하며 전체 공간을 플래시 드라이브로 완전히 복구 할 수 있습니다. 샷을 줄 수도 있습니다.

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