Як видалити iso 9660 з USB?


22

Мені якимось чином вдалося написати образ ISO 9660 на свій накопичувач USB, що змушує весь мій комп'ютер думати, що пристрій насправді є компакт-диском. Я спробував різні методи видалення цього розділу, але, здається, нічого не працює. Я спробував fdisk, що говорить

$ fdisk -l / dev / sdb
Неможливо відкрити / dev / sdb
розбиті збої, коли я намагаюся використовувати його на цьому пристрої.

Я навіть пробував

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

редагувати : зараз результат такий

$ dd, якщо = / dev / zero of = / dev / sdb
dd: відкриття `/ dev / sdb ': файлова система лише для читання

Я також спробував переформатувати його в Windows, але він закінчується процес форматування, а потім каже: "Не вдалося відформатувати диск".

Як я можу видалити цей розділ і знову повернути весь накопичувач USB до нормального?

EDIT 1 : Проба простого mkfsне працює:

$ sudo mkfs -t vfat / dev / sdb
mkfs.vfat 3.0.0 (28 вересня 2008 р.)
mkfs.vfat: Не намагатиметься зробити файлову систему на повнодисковому пристрої '/ dev / sdb' (використовувати -I, якщо потрібно)
Я не можу зробити mkfsна /dev/sdb1тому , що немає такого розділу, як показано на малюнку:
$ ls / dev | grep sdb
sdb

EDIT 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: Виробник: Generic
usb 2-1: Серійний номер: G0905000000000010885
usb-storage: пристрій знайдено в 4
usb-storage: очікування пристрою, перш ніж сканувати
usb-storage: сканування пристрою завершено
scsi 6: 0: 0: 0: FLASH Drive прямого доступу AU_USB20 8,07 PQ: 0 ANSI: 2
sd 6: 0: 0: 0: [sdb] 4069376 512-байтовий апаратний сектор (2084 МБ)
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-байтовий апаратний сектор (2084 МБ)
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 generic sg2 тип 0
Розширення ISO 9660: Microsoft Joliet 3 рівень
Розширення ISO 9660: RRIP_1991A
SELinux: ініціалізований (dev sdb, тип iso9660), використовує genfs_contexts
CE: hpet збільшуючи min_delta_ns до 15000 nsec
Це показує, що пристрій відформатовано як ISO 9660 і що він є /dev/sdb .

EDIT 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: помилка вводу / виводу, dev sdb, сектор 0
Помилка буферного вводу / виводу на sdb пристрою, логічний блок 0
втрачене записування сторінки через помилку вводу / виводу на sdb


Ви впевнені, що він завжди завантажується в / dev / sdb? Якщо ви подивитеся на кінець / var / log / messages після встановлення пристрою, ви побачите повідомлення журналу, що стосуються його автоматичного числа.
мас

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.» і є «Flashcend 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: помилка вводу-виводу, 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: FLASH Drive прямого доступу AU_USB20 8,07 PQ: 0 ANSI: 2
sd 10: 0: 0: 0: [sdb] 4069376 512-байтні апаратні сектори (2084 МБ)
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-байтні апаратні сектори (2084 МБ)
sd 10: 0: 0: 0: [sdb] Захист запису вимкнено
sd 10: 0: 0: 0: [sdb] Сенс режиму: 03 00 00 00
sd 10: 0: 0: 0: [sdb] Припускаючи кеш диска: записувати через

Зауважте, що це повідомлення говорить про те, що пристрій не захищено від запису! Тож, на жаль, схоже, що диск у нього був (тобто капут ).


У минулому я чула про флеш-пристрої, які стали цегляними, якщо ви коли-небудь використовували з ними файлову систему, що не є FAT (тому що вони використовували FAT, щоб знати, які блоки не використовувались і які можна відкинути). Я про це не чув уже давно, і не міг нічого знайти про це за допомогою швидкого пошуку в Google.
CesarB

Поки що я знайшов одну людину, яка згадує залежність FAT: linux.derkeiler.com/Mailing-Lists/Debian/2008-08/msg00761.html
CesarB

Вибачте, що це мертво ... Ех, я повинен бути радий, що мені не вдалося відтворити вашу проблему:] Хоча я спробував це на старому "одноразовому" накопичувачі, все одно було б сумно втратити це, шлях.
Кирило Стрижак

так, тим більше, що це було лише близько тижня! ой добре ...
a_m0d

1
Знайшов те, що я шукав: lkml.org/lkml/2009/3/16/363 ("Деякі виробники SDD (я не знаю, які) насправді вивчають таблицю розділів і роблять різні речі. Я знаю це, тому що вони отримують
цеглу

6

Я новачок у цьому адміністраторі Linux для системи 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.

Все це залишило мені каталог «загублений + знайдений» на накопичувачі великих пальців.

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

Нарешті, я зайшов на веб-сайт Ubuntu ( http://www.ubuntu.com/download/ubuntu/download , розділ 2) і застосував паличку для створення завантажувального зображення Ubuntu для пробного використання, і це дозволило мені. Краса зображень Ubuntu, зроблених таким чином на палиці, полягає в тому, що їх можна легко видалити, а паличку відновити для іншого використання.

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


Я хотів би спробувати ваші кроки, щоб побачити, чи це виправить, але я, здається, більше не маю палиці, тому, на жаль, не знаю, чи допоможуть вони. Тим не менш, це все ж може бути корисним для інших з тією ж проблемою.
a_m0d

5
mkdosfs -I /dev/sdb

створить файлову систему vfat на диску. - Я повинен бути переданий, якщо ви хочете, щоб файлова система була створена на всьому диску, а не на розділі. Якщо ви хочете спочатку розділити диск, використовуйте fdisk. Звичайно, fdisk зараз не може прочитати диск, оскільки на ньому немає жодних розділів. Але я впевнений, що зможе це написати.


Не працює - просто друкує номер версії та виходить. Також fdisk - "Неможливо записати / dev / sdb"
a_m0d

Я просто спробував команду, і вона записує на вказаний пристрій. Він також друкує лише номер версії. Ви можете перевірити це за допомогою звичайного файлу, який ви створили з dd. Ви можете побачити зміни, які він вносить із od. Я здогадуюсь, що це проблема обладнання.
Кім

1
це працювало для мене, щоб видалити завантажувальне зображення Centos, коли всі вищезазначені рішення не вдалися.
Ⴖ uі

2

Дивлячись на dmesgфрагмент, здається, що щось автоматично встановлюється накопичувачем (перевірити mount). Перш ніж робити щось із цим, слід промацати його вручну.

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

Зауважте, що всі кроки слід виконувати як корінь (з sudoеквівалентом). Будьте уважні, щоб не записати неправильне ім’я пристрою, інакше ви можете стерти жорсткий диск!


1
Я це зробив, але, хоча весь диск, здається, заповнений нулями, він все одно якось монтується та читає диск!
a_m0d

1

Я все ще відчуваю, що ми припускаємо щось, що виявиться неправдивим. Оскільки пристрій читабельно, цей рядок принаймні дозволить вам бачити дані самі, а не залежно від тлумачень інших програм.

dd, якщо = / dev / sdb count = 1 | xxd -g1 -u

Крім того, можливо, ми могли б відокремити проблеми з вузлом розробника від проблем із тим, що є на пристрої, перенісши його на інший порт. Або підключіть його до іншого роз'єму USB, або спочатку підключіть інший диск, щоб зайняти sdb.


хм ... за допомогою цієї команди мені кажуть, що пристрій заповнений нулями, що, мабуть, тому, що мені нарешті вдалося змусити dd if=/dev/zero of=/dev/sdbйого запустити. Але Fedora все ж монтує пристрій як ISO9660 fs, коли він підключається!
a_m0d

Чи все ще використовується Linux / etc / fstab? Ось де раніше зберігалися ці "асоціації".
гбаррі

Ні, його використання (я думаю) 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 98SE на ньому, що є останньою системою Windows, якою я колись володів. У будь-якому випадку просто поставте його, і коли ви намагатиметесь отримати доступ до диска, Windows запитає, чи хочете ви його відформатувати. Клацніть так, і у вас буде накопичений жирний формат16, який повністю функціонує. Я не знаю, чи працює вона з новішими версіями Windows. Удачі.


Весь шлях до Windows 8 :)
Себастьян Годелет


1

Минулої ночі я

dd if=fedora.iso of=sdx  

Через чотири години у мене виникла непорушна, незмінна, цегла iso9660. Слідом за поглядом Девіда, я назвав "творця диска запуску" Ubuntu (введіть "творець запуску диска" на тире) і просто вибрав "стерти". Це і вдалося.

USB-накопичувач тоді повідомлявся як FAT32, і все добре.


Іноді доречно використовувати молоток, як це. Цікаво, що було в перших кількох секторах драйву.
vgoff

0

Вийміть накопичувач і подивіться, чи можете ви ще з нього прочитати. Цікаво, чи якось / dev / usb (або де б ви не читали) перетворився на звичайний каталог файлів.


Спробував це - коли я знову підключаю його, він добре монтує, і я можу все добре прочитати. Відповідно mount, це файлова система iso9660. Однак gparted лише показує 2 Гб не виділеного місця на диску. ddскаржиться, що / dev / sdb є файловою системою лише для читання
a_m0d

0

Ви намагалися знову встановити його за допомогою параметра -t?

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

Якщо це не вийде, я спробую відтворити це пізніше, коли повернусь додому. Здається, цікава проблема. Буде весело повозитися:]


Так, не працює, тому mountщо спочатку перевіряє тип файлу
a_m0d

Так, підозрюють стільки:] Добре, більше не "ідеальних" ідей.
Кирило Стрижак

0

Найкращий і правильний спосіб це зробити:

# wipefs --all /dev/sdX

З wipefsпосібника:

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

wipefs не видаляє саму файлову систему, ані інші дані з пристрою. При використанні без будь-яких опцій wipefs перераховує всі видимі файлові системи та зсуви їх основних підписів.

wipefs викликає ioctl BLKRRPART, коли він видалив підпис таблиці розділів, щоб повідомити ядро ​​про зміну.

Це має багато переваг, як інформування ядра про зміну (тому ви не отримуєте помилок при форматуванні згодом), не стирання даних, ні файлових систем тощо.


-1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.