Jak usunąć ISO 9660 z USB?

22

Jakoś udało mi się zapisać obraz ISO 9660 na moim dysku USB, co sprawia, że ​​cały mój komputer myśli, że urządzenie to w rzeczywistości płyta CD. Próbowałem różnych metod usuwania tej partycji, ale wydaje się, że nic nie działa. Próbowałem fdisk, co mówi

$ fdisk -l / dev / sdb
Nie można otworzyć / dev / sdb
parted ulega awarii, gdy próbuję użyć go na tym urządzeniu.

Próbowałem nawet

$ dd if = / dev / zero of = / dev / sdb
ale po prostu zawiesza się bez wyjścia (na ekranie lub na dysku). Jednak po podłączeniu USB jest montowane i mogę wyświetlać (ale nie edytować) pliki na nim.

edycja : teraz wynik jest

$ dd if = / dev / zero of = / dev / sdb
dd: otwieranie `/ dev / sdb ': system plików tylko do odczytu

Próbowałem też ponownie sformatować go w systemie Windows, ale dochodzi do końca procesu formatowania, a następnie mówi „Nie można sformatować dysku”.

Jak mogę usunąć tę partycję i przywrócić mój dysk USB do normy?

EDYCJA 1 : Wypróbowanie prostego mkfsnie działa:

$ sudo mkfs -t vfat / dev / sdb
mkfs.vfat 3.0.0 (28 września 2008)
mkfs.vfat: Nie będzie próbował stworzyć systemu plików na urządzeniu z pełnym dyskiem '/ dev / sdb' (użyj -I, jeśli chcesz)
Nie mogę tego zrobić mkfsna /dev/sdb1ponieważ nie ma takiego podziału, jak pokazano na rysunku:
$ ls / dev | grep sdb
sdb

EDYCJA 2 : Oto informacje publikowane przez dmesg po podłączeniu urządzenia:

$ dmesg
.
. (fantastyczna okazja)
.
usb 2-1: Znaleziono nowe urządzenie USB, idVendor = 058f, idProduct = 6387
usb 2-1: Nowe ciągi urządzeń USB: Mfr = 1, Product = 2, SerialNumber = 3
usb 2-1: Produkt: pamięć masowa
usb 2-1: Producent: ogólny
usb 2-1: Numer seryjny: G0905000000000010885
Pamięć USB: urządzenie znalezione na 4
pamięć USB: oczekiwanie na ustabilizowanie się urządzenia przed skanowaniem
pamięć USB: skanowanie urządzenia zakończone
scsi 6: 0: 0: 0: Bezpośredni dostęp do napędu FLASH AU_USB20 8,07 PQ: 0 ANSI: 2
sd 6: 0: 0: 0: [sdb] 4069376 512-bajtowe sektory sprzętowe (2084 MB)
sd 6: 0: 0: 0: [sdb] Ochrona przed zapisem jest wyłączona
sd 6: 0: 0: 0: [sdb] Tryb wykrywania: 03 00 00 00
sd 6: 0: 0: 0: [sdb] Zakładając pamięć podręczną napędu: zapisz
sd 6: 0: 0: 0: [sdb] 4069376 512-bajtowe sektory sprzętowe (2084 MB)
sd 6: 0: 0: 0: [sdb] Ochrona przed zapisem jest wyłączona
sd 6: 0: 0: 0: [sdb] Tryb wykrywania: 03 00 00 00
sd 6: 0: 0: 0: [sdb] Zakładając pamięć podręczną napędu: zapisz
 sdb: nieznana tablica partycji
sd 6: 0: 0: 0: [sdb] Podłączony dysk wymienny SCSI
sd 6: 0: 0: 0: Dołączony ogólny scsi sg2 typ 0
Rozszerzenia ISO 9660: Microsoft Joliet Level 3
Rozszerzenia ISO 9660: RRIP_1991A
SELinux: zainicjowany (dev sdb, typ iso9660), używa genfs_contexts
CE: hpet zwiększając min_delta_ns do 15000 nsec
To pokazuje, że urządzenie ma format ISO 9660 i tak jest /dev/sdb .

EDYCJA 3 : To wiadomość, którą znajduję na dole dmesgpo uruchomieniucfdisk i zapisaniu nowej tablicy partycji na dysk:

SELinux: zainicjowany (dev sdb, typ iso9660), używa genfs_contexts
sd 17: 0: 0: 0: [sdb] Urządzenie nie jest gotowe: Sense Key: Not Ready [bieżący] 
sd 17: 0: 0: 0: [sdb] Urządzenie nie jest gotowe: <> ASC = 0xff ASCQ = 0xffASC = 0xff <> ASCQ = 0xff
end_request: błąd we / wy, dev sdb, sektor 0
Błąd wejścia / wyjścia bufora na urządzeniu sdb, blok logiczny 0
utrata zapisu strony z powodu błędu we / wy na sdb

a_m0d
źródło
Czy jesteś pewien, że zawsze ładuje się w / dev / sdb? Jeśli spojrzysz na koniec / var / log / messages po zainstalowaniu urządzenia, zobaczysz komunikaty dziennika związane z jego automatem.
mas
3
Czy na pewno nie jest on obecnie zamontowany z plikami cdfs lub równoważnymi?
RBerteig
1
@ Slink84: Wydaje mi się, że właśnie poszedłem sudo dd if=some.iso of=/dev/sdb- nie pamiętam, aby zrobić cokolwiek innego, co mogłoby to zrobić
a_m0d
1
Obraz był obrazem standardowym eeebuntu-3.0.0 - nie wiem, kto tworzy to urządzenie, ale myślę, że to Toshiba
a_m0d
1
Z pary VID / PID jest wykonany przez „Alcor Micro Corp.” i jest „Transcend JetFlash Flash Drive”. Korzystam z listy na linux-usb.org/usb.ids, aby sprawdzić te rzeczy.
RBerteig

Odpowiedzi:

8

Okay, okazuje się, że w tym przypadku coś (być może kiedy napisałem system plików iso-9660 na dysku) uruchomiło jakąś formę wewnętrznej ochrony przed zapisem na dysku. Nie ma zewnętrznych przełączników ochrony przed zapisem / wstrzymania, ale mimo to jest to wyjście, dmesggdy uruchamiam

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

jako root:

sd 9: 0: 0: 0: [sdb] Dodaj. Sense: Chroniony przed zapisem
end_request: błąd we / wy, dev sdb, sektor 4028744
sd 9: 0: 0: 0: [sdb] Wynik: hostbyte = DID_OK driverbyte = DRIVER_SENSE, SUGGEST_OK
sd 9: 0: 0: 0: [sdb] Sense Key: Data Protect [current] 
Info fld = 0x0

Zwróć uwagę na komentarze dotyczące ochrony! Jednak po podłączeniu urządzenia otrzymuję

scsi 10: 0: 0: 0: Napęd FLASH z bezpośrednim dostępem AU_USB20 8,07 PQ: 0 ANSI: 2
sd 10: 0: 0: 0: [sdb] 4069376 512-bajtowe sektory sprzętowe (2084 MB)
sd 10: 0: 0: 0: [sdb] Ochrona przed zapisem jest wyłączona
sd 10: 0: 0: 0: [sdb] Tryb wykrywania: 03 00 00 00
sd 10: 0: 0: 0: [sdb] Zakładając pamięć podręczną napędu: zapisz
sd 10: 0: 0: 0: [sdb] 4069376 512-bajtowe sektory sprzętowe (2084 MB)
sd 10: 0: 0: 0: [sdb] Ochrona przed zapisem jest wyłączona
sd 10: 0: 0: 0: [sdb] Tryb wykrywania: 03 00 00 00
sd 10: 0: 0: 0: [sdb] Zakładając pamięć podręczną napędu: zapisz

Pamiętaj, że ten komunikat mówi, że urządzenie nie jest chronione przed zapisem! Niestety wygląda na to, że dysk go miał (tj. Kaput ).

a_m0d
źródło
Słyszałem w przeszłości o urządzeniach flash, które uległy uszkodzeniu, jeśli kiedykolwiek używałeś z nimi systemu plików innego niż FAT (ponieważ używali FAT, aby wiedzieć, które bloki są nieużywane i mogą zostać odrzucone). Dawno o tym nie słyszałem i nie mogłem nic na ten temat znaleźć dzięki szybkiemu wyszukiwaniu w Google.
CesarB
Do tej pory znalazłem jedną osobę wspominającą o zależności FAT: linux.derkeiler.com/Mailing-Lists/Debian/2008-08/msg00761.html
CesarB
Przykro mi, że to nie żyje ... Heh, powinienem się cieszyć, że nie udało mi się odtworzyć twojego problemu:] Mimo że wypróbowałem to na starym „jednorazowym” dysku, nadal smutno byłoby go stracić sposób.
Kirill Strizhak
tak, zwłaszcza, że ​​miał zaledwie tydzień! no cóż ...
a_m0d
1
Znaleziono to, czego szukałem: lkml.org/lkml/2009/3/16/363 („Niektórzy producenci SDD (nie wiem, którzy z nich) faktycznie sprawdzają tablicę partycji i robią różne rzeczy. Wiem to, ponieważ są trwale zamurowane, jeśli zapisze się niepoprawną tablicę partycji. ”)
CesarB 10.09.09
6

Jestem nowy w tym administracyjnym systemie Linux, więc kiedy miałem dokładnie ten sam problem, szturchnąłem i szedłem bez szaleństwa do mojej metody, ale udało mi się usunąć iso9660 fs i odzyskać pamięć USB.

sudo fdisk -l  /dev/sdb1

zwrócony

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

Więc spróbowałem

sudo fdisk /dev/sdb1

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

śledzony przez

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

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

Następnie, gdy ponownie pojawi się monit o wybranie fdisk, aby utworzyć pustą tablicę partycji dos (pomyślałem, że mogę zastąpić to, co chciałem później)

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.

Wziąłem odesłane wiadomości w ten sposób, że przynajmniej „zepsułem” iso9660 fs, więc zacząłem wypróbowywać 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.

Wszystko to pozostawiło mi katalog „lost + found” na pendrivie.

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

Wreszcie poszedłem na stronę Ubuntu ( http://www.ubuntu.com/download/ubuntu/download , sekcja 2) i użyłem drążka, aby utworzyć bootowalny obraz Ubuntu do użytku próbnego, i pozwoliło mi to. Piękno obrazów Ubuntu wykonanych w ten sposób na kiju polega na tym, że można je łatwo usunąć, a kij odzyskać do innego użytku.

Wspominam o tym ostatnim kroku, ponieważ z perspektywy czasu zastanawiam się, czy zrobiłbym to po pierwsze, że zadziałałoby, nie wiem. Jak wspomniano, jestem nowy w tym Linux-ie i próbuję różnych dystrybucji (np. Fedora, Ubuntu itp.) Na płytach CD na żywo z dowolnymi mediami, które są najwygodniejsze i na pewno popsuję wiele rzeczy po drodze.

David Cantwell
źródło
Chciałbym spróbować swoich kroków, aby to naprawić, ale wydaje mi się, że nie mam już kija, więc niestety nie wiem, czy pomogłyby. Niemniej jednak może to być pomocne dla innych osób z tym samym problemem.
a_m0d
5
mkdosfs -I /dev/sdb

utworzy system plików vfat na dysku. -I należy przekazać, jeśli chcesz, aby system plików był tworzony na całym dysku, a nie na partycji. Jeśli chcesz najpierw podzielić dysk na partycje, użyj fdisk. Oczywiście fdisk nie może teraz odczytać dysku, ponieważ nie ma żadnych partycji. Ale jestem pewien, że będzie mógł do tego napisać.

Kim
źródło
Nie działa - po prostu drukuje numer wersji i wychodzi. Ponadto fdisk to „Nie można zapisać / dev / sdb”
a_m0d
właśnie wypróbowałem polecenie i zapisuje na określone urządzenie. Drukuje również tylko numer wersji. Możesz to przetestować za pomocą zwykłego pliku utworzonego za pomocą dd. Możesz zobaczyć zmiany, które wprowadza za pomocą od. Domyślam się, że to problem sprzętowy.
Kim
1
zadziałało to dla mnie, aby usunąć obraz startowy Centos, gdy wszystkie powyższe rozwiązania zawiodły.
2

Patrząc na dmesgfragment, wydaje się, że coś automatycznie instaluje dysk (sprawdź za pomocą mount). Zanim cokolwiek z tym zrobisz, powinieneś umontować je ręcznie.

Następnie wyzeruj blok za pomocą tablicy partycji ( dd if=/dev/zero of=... bs=512 count=1) i uruchom narzędzie do partycjonowania, aby odtworzyć pustą tablicę partycji. Następnie odłącz i ponownie podłącz (nie powinno być to potrzebne, ale ...) i utwórz / sformatuj partycje, które chcesz na nim. Po utworzeniu partycji (być może będziesz musiał odłączyć i ponownie zainstalować), powinieneś mieć /dev/sdb1lub coś takiego, czyli tam, gdzie powinieneś utworzyć system plików.

Zauważ, że wszystkie kroki powinny być wykonane jako root (z sudolub równorzędnym). Uważaj, aby nie wpisać niewłaściwej nazwy urządzenia, bo możesz wytrzeć dysk twardy!

CesarB
źródło
1
Zrobiłem to, ale mimo że cały dysk wydaje się być wypełniony zerami, nadal jakoś montuje i odczytuje dysk!
a_m0d
1

Nadal uważam, że zakładamy coś, co okaże się nieprawdziwe. Ponieważ urządzenie jest czytelne, ten wiersz pozwoli ci przynajmniej zobaczyć dane dla siebie, a nie w zależności od interpretacji innych programów.

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

Być może moglibyśmy oddzielić problemy z węzłem deweloperskim od problemów z tym, co jest na urządzeniu, poprzez wymuszenie go na innym porcie. Podłącz go do innego gniazda USB lub podłącz najpierw inny dysk, aby zająć sdb.

gbarry
źródło
hmm ... użycie tego polecenia mówi mi, że urządzenie jest wypełnione zerami, prawdopodobnie dlatego, że w końcu udało mi dd if=/dev/zero of=/dev/sdbsię na nim uruchomić. Ale fedora wciąż montuje urządzenie jako ISO9660 fs, gdy jest podłączone!
a_m0d
Czy Linux nadal używa / etc / fstab? Właśnie tam przechowywane były te „skojarzenia”.
gbarry
Nie, jego użycie (tak myślę) udevlub cokolwiek to jest, co automatycznie montuje dysk.
a_m0d
1

Obecnie twój dysk USB nie ma tablicy partycji, system plików iso9660 znajduje się bezpośrednio na całym dysku (podobnie jak cdrom)

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

Myślę, że najpierw musisz utworzyć partycję

sudo cfdisk /dev/sdb

(upewnij się, że nie był wcześniej zamontowany) w aplikacji fdisk utwórz nową partycję.

po zakończeniu wykonaj system plików na nowej partycji

sudo mkfs -t vfat /dev/sdb1
Joakim Elofsson
źródło
Próbowałem tego; cfdisk nie wyświetla żadnych komunikatów o błędach, ale szybki przegląd dmesgpokazuje, że faktycznie jest komunikat o błędzie. (patrz Edycja 3 w pytaniu powyżej)
a_m0d
1

Miałem dokładnie taki sam problem jak ty. Udało mi się jednak znaleźć rozwiązanie z zaskakującego miejsca. Stary laptop z systemem Windows 98SE, który jest ostatnim systemem Windows, jaki kiedykolwiek miałem. W każdym razie po prostu włóż go, a gdy spróbujesz uzyskać dostęp do dysku, system Windows zapyta, czy chcesz go sformatować. Kliknij tak, a otrzymasz dysk sformatowany w formacie fat16, który jest w pełni funkcjonalny. Nie wiem jednak, czy działa z nowszymi wersjami systemu Windows. Powodzenia.

Anonimowy
źródło
1

Może z prostym

mkfs -t vfat /dev/sdb1
Vinko Vrsalovic
źródło
Nie działa - patrz edycja do pytania
a_m0d
1

Ostatniej nocy zrobiłem

dd if=fedora.iso of=sdx  

Po czterech godzinach miałem niewymienialną, niezmienną cegłę iso9660. Idąc za tokiem myślenia Davida, nazwałem „kreator dysku startowego” Ubuntu (wpisz „kreator dysku startowego” w myślniku) i po prostu wybrałem „kasowanie”. To zrobiło to.

Dysk USB został następnie zgłoszony jako FAT32 i wszystko jest w porządku.

dan
źródło
Czasami właściwe jest użycie takiego młotka. Zastanawiam się, co było w pierwszych kilku sektorach dysku.
vgoff,
0

Wyjmij dysk i sprawdź, czy nadal możesz z niego czytać. Zastanawiam się, czy jakoś / dev / usb (lub gdziekolwiek czytasz) stał się zwykłym katalogiem plików.

gbarry
źródło
Próbowałem tego - kiedy podłączę go z powrotem, dobrze go zamontuje i mogę wszystko dobrze odczytać. Według mountjest to system plików iso9660. Jednak gparted pokazuje tylko 2 GB nieprzydzielonego miejsca na dysku. ddnarzeka, że ​​/ dev / sdb jest systemem plików tylko do odczytu
a_m0d
0

Czy próbowałeś zamontować go ponownie z opcją -t?

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

Jeśli to nie zadziała, postaram się to odtworzyć później, kiedy wrócę do domu. Wygląda na interesujący problem. Będzie fajnie majstrować przy:]

Kirill Strizhak
źródło
Hah, nie, nie działa, ponieważ mountnajpierw sprawdza typ pliku
a_m0d
Tak, podejrzewałem tyle samo:] Ok, nie ma już pomysłów „nieoczekiwanych”.
Kirill Strizhak
0

Najlepszym i właściwym sposobem na to jest:

# wipefs --all /dev/sdX

Jak w wipefsinstrukcji:

wipefs może kasować sygnatury systemu plików, nalotów lub tablic partycji (magiczne łańcuchy) z określonego urządzenia, aby podpisy były niewidoczne dla libblkid.

wipefs nie usuwa samego systemu plików ani żadnych innych danych z urządzenia. Gdy używany bez żadnych opcji, wipefs wyświetla listę wszystkich widocznych systemów plików i przesunięcia ich podstawowych podpisów.

wipefs wywołuje ioctl BLKRRPART po usunięciu podpisu tablicy partycji w celu poinformowania jądra o zmianie.

Ma to wiele zalet, takich jak informowanie jądra o zmianie (aby później nie było żadnych błędów podczas formatowania), nie usuwanie danych ani systemów plików itd.

emi
źródło
-1

U3 ma narzędzie do usuwania partycji U3. Usuwa również partycję / urządzenie utworzone przez narzędzie, które tworzy iso 9660. Zostało to potwierdzone tylko na pendrivie USB3, ale można go teraz sformatować i całkowicie odzyskać całą przestrzeń jako dysk flash. Możesz spróbować.

pukanie
źródło