20

Мне каким-то образом удалось записать образ ISO 9660 на мой USB-накопитель, что заставляет весь мой компьютер думать, что устройство на самом деле является CD. Я пробовал различные способы удаления этого раздела, но, похоже, ничего не работает. Я пробовал fdisk , который говорит

$ fdisk -l /dev/sdb
Cannot open /dev/sdb
parted падает, когда я пытаюсь использовать его на этом устройстве.

Я даже пытался

$ dd if=/dev/zero of=/dev/sdb
но он просто висит без вывода (ни на экране, ни на диске). Однако, когда я подключаю USB, он монтируется, и я могу просматривать (но не редактировать) файлы на нем.

редактировать: теперь результат

$ dd if=/dev/zero of=/dev/sdb
dd: opening `/dev/sdb': Read-only file system

Я также попытался переформатировать его в Windows, но он доходит до конца процесса форматирования и затем говорит: «Не удалось отформатировать диск».

Как я могу удалить этот раздел и вернуть весь USB-накопитель в нормальное состояние?

РЕДАКТИРОВАТЬ 1: Попытка простого mkfs не работает:

$ sudo mkfs -t vfat /dev/sdb
mkfs.vfat 3.0.0 (28 Sep 2008)
mkfs.vfat: Will not try to make filesystem on full-disk device '/dev/sdb' (use -I if wanted)
Я не могу сделать mkfs в /dev/sdb1 потому что нет такого раздела, как показано:
$ ls /dev | grep sdb
sdb

РЕДАКТИРОВАТЬ 2: Это информация, опубликованная dmesg, когда я подключаю устройство:

$ dmesg
.
. (snip)
.
usb 2-1: New USB device found, idVendor=058f, idProduct=6387
usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 2-1: Product: Mass  Storage
usb 2-1: Manufacturer: Generic
usb 2-1: SerialNumber: G0905000000000010885
usb-storage: device found at 4
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete
scsi 6:0:0:0: Direct-Access     FLASH    Drive  AU_USB20  8.07 PQ: 0 ANSI: 2
sd 6:0:0:0: [sdb] 4069376 512-byte hardware sectors (2084 MB)
sd 6:0:0:0: [sdb] Write Protect is off
sd 6:0:0:0: [sdb] Mode Sense: 03 00 00 00
sd 6:0:0:0: [sdb] Assuming drive cache: write through
sd 6:0:0:0: [sdb] 4069376 512-byte hardware sectors (2084 MB)
sd 6:0:0:0: [sdb] Write Protect is off
sd 6:0:0:0: [sdb] Mode Sense: 03 00 00 00
sd 6:0:0:0: [sdb] Assuming drive cache: write through
 sdb: unknown partition table
sd 6:0:0:0: [sdb] Attached SCSI removable disk
sd 6:0:0:0: Attached scsi generic sg2 type 0
ISO 9660 Extensions: Microsoft Joliet Level 3
ISO 9660 Extensions: RRIP_1991A
SELinux: initialized (dev sdb, type iso9660), uses genfs_contexts
CE: hpet increasing min_delta_ns to 15000 nsec
Это показывает , что устройство имеет формат ISO 9660 , и что оно /dev/sdb .

РЕДАКТИРОВАТЬ 3: Это сообщение, которое я нахожу в нижней части dmesg после запуска cfdisk и записи новой таблицы разделов на диск:

SELinux: initialized (dev sdb, type iso9660), uses genfs_contexts
sd 17:0:0:0: [sdb] Device not ready: Sense Key : Not Ready [current] 
sd 17:0:0:0: [sdb] Device not ready: <> ASC=0xff ASCQ=0xffASC=0xff <> ASCQ=0xff
end_request: I/O error, dev sdb, sector 0
Buffer I/O error on device sdb, logical block 0
lost page write due to I/O error on sdb

13 ответов13

7

Хорошо, оказывается, что в этом случае что-то (возможно, когда я записал файловую систему iso-9660 на диск) вызвало некоторую форму внутренней защиты от записи на диске. Там нет никаких внешних защиты от записи / Удержать переключателей, но все же это выход в dmesg , когда я бегу

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

как корень:

sd 9:0:0:0: [sdb] Add. Sense: Write protected
end_request: I/O error, dev sdb, sector 4028744
sd 9:0:0:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
sd 9:0:0:0: [sdb] Sense Key : Data Protect [current] 
Info fld=0x0

Обратите внимание на комментарии там о защите! Однако, когда я подключаю устройство, я получаю,

scsi 10:0:0:0: Direct-Access     FLASH    Drive  AU_USB20  8.07 PQ: 0 ANSI: 2
sd 10:0:0:0: [sdb] 4069376 512-byte hardware sectors (2084 MB)
sd 10:0:0:0: [sdb] Write Protect is off
sd 10:0:0:0: [sdb] Mode Sense: 03 00 00 00
sd 10:0:0:0: [sdb] Assuming drive cache: write through
sd 10:0:0:0: [sdb] 4069376 512-byte hardware sectors (2084 MB)
sd 10:0:0:0: [sdb] Write Protect is off
sd 10:0:0:0: [sdb] Mode Sense: 03 00 00 00
sd 10:0:0:0: [sdb] Assuming drive cache: write through

Обратите внимание, что это сообщение говорит о том, что устройство не защищено от записи! Так что, к сожалению, похоже, что диск был (т.е. капут).

6

Я новичок в этой системе администрирования Linux, поэтому, когда у меня возникла точно такая же проблема, я без сумасшествия ткнул и подтолкнул свой метод, но сумел удалить 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

Затем при появлении запроса снова выберите fdisk для создания пустой таблицы разделов DOS (что-то, что я решил, я могу перезаписать с тем, что я хочу позже)

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 для пробного использования, и он позволил мне. Прелесть образов Ubuntu, сделанных на флешке, заключается в том, что их можно легко удалить, а флешку утилизировать для другого использования.

Я упоминаю этот самый последний шаг, потому что, оглядываясь назад, мне интересно, если бы я сделал именно это, во-первых, это сработало бы, я не знаю. Как уже упоминалось, я новичок в этом материале для Linux и пробую разные дистрибутивы (например, Fedora, Ubuntu и т.д.) На живых компакт-дисках с любыми носителями, которые наиболее удобны, и я уверен, что по пути сломаю много вещей.

5
mkdosfs -I /dev/sdb

создаст на диске файловую систему vfat. Ключ -I должен быть передан, если вы хотите, чтобы файловая система создавалась на всем диске, а не на разделе. Если вы хотите сначала разбить диск, используйте fdisk. Конечно, fdisk не может прочитать диск сейчас, потому что у него нет разделов. Но я уверен, что он сможет написать в него.

2

Глядя на фрагмент dmesg , кажется, что что-то автоматически монтирует диск (проверьте с помощью mount). Прежде чем делать что-либо с этим, вы должны размонтировать его вручную.

Затем обнулите блок таблицей разделов (dd if=/dev/zero of=... bs=512 count=1) и запустите инструмент разделения, чтобы воссоздать пустую таблицу разделов. После этого отключите и снова подключите (не нужно, но ...) и создайте / отформатируйте нужные разделы. После создания разделов (возможно, вам придется отключить и снова подключить), у вас должен быть /dev/sdb1 или что-то в этом роде, где вы должны создать файловую систему.

Обратите внимание, что все шаги должны выполняться от имени пользователя root (с помощью sudo или аналогичного). Будьте осторожны, чтобы не написать неправильное имя устройства, иначе вы можете стереть жесткий диск!

1

У меня была точно такая же проблема, как и у вас. Однако мне удалось найти решение из удивительного места. Старый ноутбук с Windows 98SE, который является последней системой Windows, которой я когда-либо владел. В любом случае, просто вставьте его, и когда вы попытаетесь получить доступ к диску, Windows спросит вас, хотите ли вы отформатировать его. Нажмите «Да», и у вас будет полностью отформатированный диск в формате fat16. Я не знаю, работает ли он с более новыми версиями Windows, хотя. Удачи.

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
1

Прошлой ночью я сделал

dd if=fedora.iso of=sdx  

Через четыре часа у меня был не загружаемый, неизменный кирпич iso9660. Следуя ходу мыслей Дэвида, я назвал Ubuntu «создатель загрузочного диска» (наберите «начальный диск создатель» в тире) и просто выбрал «стереть». Это сделал это.

Затем USB-накопитель был назван FAT32, и все в порядке.

0

Может быть с простым

mkfs -t vfat /dev/sdb1
0

Извлеките диск и посмотрите, сможете ли вы прочитать с него. Интересно, стал ли каталог /dev /usb (или где бы вы ни читали) обычным файловым каталогом.

0

Вы пытались перемонтировать его с опцией -t?

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

Если это не сработает, я постараюсь воспроизвести это позже, когда вернусь домой. Похоже, интересная проблема. Будет весело повозиться с:]

0

Лучший и правильный способ сделать это:

# wipefs --all /dev/sdX

Как из руководства wipefs :

wipefs может стереть подписи файловой системы, raid или таблицы разделов (магические строки) с указанного устройства, чтобы сделать подписи невидимыми для libblkid.

wipefs не удаляет ни файловую систему, ни другие данные с устройства. При использовании без каких-либо параметров, wipefs перечисляет все видимые файловые системы и смещения их основных сигнатур.

wipefs вызывает BLKRRPART ioctl, когда он стер подпись таблицы разделов, чтобы сообщить ядру об изменении.

Это имеет много преимуществ, таких как информирование ядра об изменениях (так что вы не получите никаких ошибок при форматировании после этого), отсутствие стирания данных или файловых систем и так далее.

0

Я все еще чувствую, что мы предполагаем что-то, что окажется неправдой. Поскольку устройство доступно для чтения, эта строка, по крайней мере, позволит вам увидеть данные самостоятельно, а не в зависимости от интерпретаций других программ.

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

Также, возможно, мы могли бы отделить проблемы с узлом dev от проблем с тем, что находится на устройстве, принудительно перенеся его на другой порт. Либо подключите его к другому USB-разъему, либо сначала подключите другой диск, чтобы занять sdb.

-1

У U3 есть утилита для удаления их раздела U3. Он также удаляет раздел / устройство, созданное утилитой, которая создает iso 9660. Это было подтверждено только на USB-флешке u3, но теперь его можно отформатировать и полностью восстановить все пространство как флешку. Вы могли бы дать ему шанс.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .