Come rimuovere iso 9660 da USB?


22

In qualche modo sono riuscito a scrivere un'immagine ISO 9660 sulla mia unità USB, il che fa pensare a tutto il mio computer che il dispositivo sia effettivamente un CD. Ho provato vari metodi per rimuovere questa partizione, ma nulla sembra funzionare. Ho provato fdisk, che dice

$ fdisk -l / dev / sdb
Impossibile aprire / dev / sdb
si è arrestato in modo anomalo quando provo a utilizzarlo su questo dispositivo.

Ci ho persino provato

$ dd if = / dev / zero di = / dev / sdb
ma si blocca semplicemente senza output (su schermo o su disco). Tuttavia, quando collego l'USB, si monta e posso visualizzare (ma non modificare) i file su di esso.

modifica : ora il risultato è

$ dd if = / dev / zero di = / dev / sdb
dd: opening `/ dev / sdb ': file system di sola lettura

Ho anche provato a riformattarlo su Windows, ma arriva alla fine del processo di formattazione e quindi dice "Impossibile formattare l'unità".

Come posso rimuovere questa partizione e riportare l'intera unità USB alla normalità?

EDIT 1 : provare un semplice mkfsnon funziona:

$ sudo mkfs -t vfat / dev / sdb
mkfs.vfat 3.0.0 (28 set 2008)
mkfs.vfat: non tenterà di creare il filesystem sul dispositivo a disco intero '/ dev / sdb' (usare -I se desiderato)
Io non posso fare mkfsil /dev/sdb1perché non c'è tale partizione, come mostrato:
$ ls / dev | grep sdb
sdb

EDIT 2 : Queste sono le informazioni pubblicate da dmesg quando collego il dispositivo:

$ dmesg
.
. (Snip)
.
usb 2-1: trovato nuovo dispositivo USB, idVendor = 058f, idProduct = 6387
usb 2-1: Nuove stringhe di dispositivi USB: Mfr = 1, Product = 2, SerialNumber = 3
usb 2-1: Prodotto: archiviazione di massa
usb 2-1: Produttore: generico
usb 2-1: Numero di serie: G0905000000000010885
memoria USB: dispositivo trovato in 4
memoria USB: in attesa che il dispositivo si stabilizzi prima della scansione
memoria USB: scansione del dispositivo completata
scsi 6: 0: 0: 0: Drive FLASH ad accesso diretto AU_USB20 8.07 PQ: 0 ANSI: 2
sd 6: 0: 0: 0: [sdb] 4069376 settori hardware a 512 byte (2084 MB)
sd 6: 0: 0: 0: [sdb] Protezione da scrittura disattivata
sd 6: 0: 0: 0: [sdb] Modalità Senso: 03 00 00 00
sd 6: 0: 0: 0: [sdb] Supponendo che la cache dell'unità: scriva
sd 6: 0: 0: 0: [sdb] 4069376 settori hardware a 512 byte (2084 MB)
sd 6: 0: 0: 0: [sdb] Protezione da scrittura disattivata
sd 6: 0: 0: 0: [sdb] Modalità Senso: 03 00 00 00
sd 6: 0: 0: 0: [sdb] Supponendo che la cache dell'unità: scriva
 sdb: tabella delle partizioni sconosciuta
sd 6: 0: 0: 0: [sdb] Disco rimovibile SCSI collegato
sd 6: 0: 0: 0: allegato sgsi generico sg2 tipo 0
Estensioni ISO 9660: Microsoft Joliet Livello 3
Estensioni ISO 9660: RRIP_1991A
SELinux: inizializzato (dev sdb, tipo iso9660), usa genfs_contexts
CE: hpet aumenta min_delta_ns a 15000 nsec
Ciò dimostra che il dispositivo è formattato come ISO 9660 e lo è /dev/sdb .

EDIT 3 : Questo è il messaggio che trovo in fondo dmesgdopo aver eseguito cfdiske scritto una nuova tabella delle partizioni sul disco:

SELinux: inizializzato (dev sdb, tipo iso9660), usa genfs_contexts
sd 17: 0: 0: 0: [sdb] Dispositivo non pronto: Tasto di rilevamento: Non pronto [corrente] 
sd 17: 0: 0: 0: [sdb] Dispositivo non pronto: <> ASC = 0xff ASCQ = 0xffASC = 0xff <> ASCQ = 0xff
end_request: errore I / O, dev sdb, settore 0
Errore I / O buffer sul dispositivo SDB, blocco logico 0
scrittura pagina persa a causa di errore I / O su sdb


Sei sicuro che si stia caricando sempre su / dev / sdb? Se guardi la fine di / var / log / messaggi dopo l'installazione del dispositivo, vedrai i messaggi di registro relativi al suo montaggio automatico.
mas

3
Sei sicuro che al momento non sia montato con PDF o equivalenti?
RBerteig,

1
@ Slink84: Penso di esserci appena andato sudo dd if=some.iso of=/dev/sdb- non ricordo di aver fatto nient'altro che potesse farlo
a_m0d

1
L'immagine era un'immagine standard di eeebuntu-3.0.0 - non so chi sia il dispositivo, ma penso che sia Toshiba
a_m0d

1
Dalla coppia VID / PID, è realizzato da "Alcor Micro Corp." ed è un "Transcend JetFlash Flash Drive". Uso l'elenco su linux-usb.org/usb.ids per cercare queste cose.
RBerteig,

Risposte:


8

Va bene, si scopre che in questo caso qualcosa (probabilmente quando ho scritto il file system iso-9660 sull'unità) ha attivato una qualche forma di protezione interna da scrittura sull'unità. Ci sono nessun commuta esterna protezione da scrittura / hold, ma tuttavia questo è l'uscita in dmesgquando corro

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

come root:

sd 9: 0: 0: 0: [sdb] Aggiungi. Senso: protezione da scrittura
end_request: errore I / O, dev sdb, settore 4028744
sd 9: 0: 0: 0: [sdb] Risultato: hostbyte = DID_OK driverbyte = DRIVER_SENSE, SUGGEST_OK
sd 9: 0: 0: 0: [sdb] Chiave di rilevamento: Protezione dati [corrente] 
Info fld = 0x0

Prendi nota dei commenti sulla protezione! Tuttavia, quando collego il dispositivo, ottengo,

scsi 10: 0: 0: 0: Drive FLASH ad accesso diretto AU_USB20 8.07 PQ: 0 ANSI: 2
sd 10: 0: 0: 0: [sdb] 4069376 settori hardware a 512 byte (2084 MB)
sd 10: 0: 0: 0: [sdb] Protezione da scrittura disattivata
sd 10: 0: 0: 0: [sdb] Modalità Senso: 03 00 00 00
sd 10: 0: 0: 0: [sdb] Supponendo che la cache dell'unità: scriva
sd 10: 0: 0: 0: [sdb] 4069376 settori hardware a 512 byte (2084 MB)
sd 10: 0: 0: 0: [sdb] Protezione da scrittura disattivata
sd 10: 0: 0: 0: [sdb] Modalità Senso: 03 00 00 00
sd 10: 0: 0: 0: [sdb] Supponendo che la cache dell'unità: scriva

Si noti che questo messaggio indica che il dispositivo non è protetto da scrittura! Quindi, sfortunatamente, sembra che il disco lo abbia avuto (cioè kaput ).


In passato ho sentito parlare di dispositivi flash che si sono bloccati se hai mai usato un file system non FAT con loro (perché hanno usato il FAT per sapere quali blocchi non erano stati utilizzati e potevano essere scartati). Non ne ho sentito parlare da molto tempo e non sono riuscito a trovare nulla al riguardo con una rapida ricerca su Google.
CesarB,

Finora ho trovato una persona che menziona la dipendenza da FAT: linux.derkeiler.com/Mailing-Lists/Debian/2008-08/msg00761.html
CesarB

Mi dispiace sapere che è morto ... Heh, dovrei essere contento di non essere riuscito a riprodurre il tuo problema:] Anche se l'ho provato su un vecchio disco "usa e getta", sarebbe comunque triste perderlo che modo.
Kirill Strizhak,

sì, soprattutto perché aveva solo una settimana! vabbè ...
a_m0d,

1
Trovato quello che stavo cercando: lkml.org/lkml/2009/3/16/363 ("Alcuni produttori di SDD (non so quali) stiano effettivamente esaminando la tabella delle partizioni e facendo cose diverse. Lo so perché sono permanentemente in muratura se si scrive una tabella delle partizioni non valida. ")
CesarB

6

Sono nuovo di questa roba da amministratore di sistema Linux, quindi quando ho avuto esattamente lo stesso problema ho frugato e pungolato senza follia per il mio metodo, ma sono riuscito a rimuovere iso9660 fs e recuperare la chiavetta.

sudo fdisk -l  /dev/sdb1

tornato

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

Quindi ho provato

sudo fdisk /dev/sdb1

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

seguito da

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

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

Quindi, quando richiesto nuovamente selezionato per fdisk per creare una tabella di partizione DOS vuota (qualcosa che ho pensato di poter sovrascrivere con quello che volevo in seguito)

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.

Ho preso i messaggi restituiti per significare che almeno "ho rotto" gli iso9660 fs quindi ho continuato a provare 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.

Tutto ciò mi ha lasciato nella directory "lost + found".

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

Infine, sono andato sul sito Web di Ubuntu ( http://www.ubuntu.com/download/ubuntu/download , sezione 2) e ho usato lo stick per creare un'immagine di avvio di Ubuntu per l'uso di prova, e me lo ha permesso. La bellezza delle immagini di Ubuntu fatte in questo modo è che possono essere eliminate facilmente e il bastone può essere recuperato per altri usi.

Cito questo ultimo passo perché, col senno di poi, mi chiedo se avessi fatto proprio questo in primo luogo che avrebbe funzionato, non lo so. Come accennato, sono nuovo su questa roba di Linux e sto provando diverse distro (ad es. Fedora, Ubuntu, ecc.) Su cd live con qualunque media sia più conveniente, e sicuramente rompo un sacco di cose lungo la strada.


Mi piacerebbe provare i tuoi passi per vedere se questo avrebbe risolto il problema, ma sembra che non abbia più il bastone, quindi sfortunatamente non so se potrebbero aiutare. Tuttavia, questo potrebbe essere ancora utile per gli altri con lo stesso problema.
a_m0d

5
mkdosfs -I /dev/sdb

creerà un file system vfat sull'unità. È necessario passare -I se si desidera creare il file system sull'intera unità e non su una partizione. Se si desidera prima partizionare l'unità, utilizzare fdisk. Ovviamente fdisk non può leggere l'unità ora, perché non ha partizioni. Ma sono sicuro che sarà in grado di scrivergli.


Non funziona: stampa solo il numero di versione ed esce. Inoltre, fdisk è "Impossibile scrivere / dev / sdb"
a_m0d

ho appena provato il comando e lo scrive sul dispositivo specificato. Stampa anche solo il numero di versione. Puoi provarlo con un normale file che hai creato con dd. Puoi vedere le modifiche apportate con od. La mia ipotesi è che si tratti di un problema hardware.
Kim,

1
questo ha funzionato per me per rimuovere un'immagine di avvio di Centos quando tutte le soluzioni di cui sopra erano fallite.
ღ uі

2

Guardando lo dmesgsnippet, sembra che qualcosa stia montando automaticamente l'unità (verificare con mount). Prima di fare qualsiasi cosa con esso, dovresti smontarlo a mano.

Quindi azzerare il blocco con la tabella delle partizioni ( dd if=/dev/zero of=... bs=512 count=1) ed eseguire uno strumento di partizionamento per ricreare una tabella delle partizioni vuota. Successivamente, scollegare e ricollegare (non dovrebbe essere necessario, ma ...) e creare / formattare le partizioni desiderate su di esso. Dopo aver creato le partizioni (forse dovrai scollegare e ricollegare nuovamente), dovresti avere /dev/sdb1o qualcosa del genere, che è dove dovresti creare il filesystem.

Si noti che tutti i passaggi devono essere eseguiti come root (con sudoo equivalente). Fai attenzione a non scrivere il nome del dispositivo sbagliato, altrimenti potresti cancellare il tuo disco rigido!


1
L'ho fatto, ma anche se l'intero disco sembra essere pieno di zeri, in qualche modo monta e legge il disco!
a_m0d

1

Sento ancora che stiamo assumendo qualcosa che si rivelerà falso. Poiché il dispositivo è leggibile, questa riga ti consentirà almeno di visualizzare i dati per te stesso, anziché dipendere dalle interpretazioni degli altri programmi.

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

Inoltre, forse potremmo separare i problemi con il nodo dev dai problemi con ciò che è sul dispositivo, forzandolo su un'altra porta. Collegalo a un'altra presa USB o collega prima un'altra unità per occupare SDB.


hmm ... l'uso di questo comando mi dice che il dispositivo è pieno di zeri, probabilmente perché alla fine sono riuscito dd if=/dev/zero of=/dev/sdba eseguirlo. Eppure fedora monta ancora il dispositivo come un ISO9660 fs quando è collegato!
a_m0d

Linux usa ancora / etc / fstab? Ecco dove venivano memorizzate queste "associazioni".
Gbarry,

No, il suo utilizzo (credo) udevo qualunque cosa sia che monta automaticamente l'unità.
a_m0d

1

Attualmente l'unità USB non ha una tabella delle partizioni, il file system iso9660 si trova direttamente su tutto il disco (proprio come un cdrom)

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

Penso che prima sia necessario creare una partizione

sudo cfdisk /dev/sdb

(assicurati che non sia stato montato prima) nell'applicazione fdisk crea una nuova partizione.

fatto ciò, crea il filesystem sulla nuova partizione

sudo mkfs -t vfat /dev/sdb1

Ho provato questo; cfdisk non produce alcun messaggio di errore, ma una rapida occhiata dmesgmostra che c'è effettivamente un messaggio di errore. (vedi Modifica 3 in questione sopra)
a_m0d

1

Ho avuto lo stesso tuo problema. Tuttavia, sono stato in grado di trovare una soluzione da un posto sorprendente. Un vecchio laptop con Windows 98SE, che è l'ultimo sistema Windows che abbia mai posseduto. Ad ogni modo basta inserirlo e quando provi ad accedere all'unità Windows ti chiederà se desideri formattarlo. Fai clic su Sì e avrai un'unità formattata fat16 perfettamente funzionante. Non so se funziona con le versioni più recenti di Windows. Buona fortuna.


Fino a Windows 8 :)
Sebastian Godelet,


1

Ieri sera l'ho fatto

dd if=fedora.iso of=sdx  

Dopo quattro ore ho avuto un mattone iso9660 non avviabile, immutabile. Seguendo il filo conduttore di David, ho chiamato Ubuntu "startup disk creator" (digitare "startup disk creator" nel trattino) e ho semplicemente selezionato "cancella". Quello l'ha fatto.

L'unità USB è stata quindi segnalata come FAT32 e tutto va bene.


A volte è appropriato usare un martello, come questo. Mi chiedo cosa fosse nei primi settori del disco.
vgoff,

0

Rimuovere l'unità e vedere se è ancora possibile leggere da essa. Mi chiedo se in qualche modo / dev / usb (o ovunque tu abbia letto) sia diventata una normale directory di file.


Ho provato questo: quando lo ricollego, lo monta bene e posso leggere tutto bene. Secondo mount, si tratta di un file system iso9660. Tuttavia, gparted mostra solo 2 GB di spazio non allocato sull'unità. ddsi lamenta che / dev / sdb è un file system di sola lettura
a_m0d

0

Hai provato a rimontarlo con l'opzione -t?

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

Se non funziona, proverò a riprodurlo più tardi, quando torno a casa. Sembra un problema interessante. Sarà divertente armeggiare con:]


Hah, nah, non funziona, perché mountcontrolla prima il tipo di file
a_m0d

Sì, sospettato altrettanto:] Ok, non più idee "di punto in bianco".
Kirill Strizhak,

0

Il modo migliore e corretto per farlo è:

# wipefs --all /dev/sdX

A partire dal wipefsmanuale:

wipefs può cancellare le firme del filesystem, raid o della tabella delle partizioni (stringhe magiche) dal dispositivo specificato per rendere invisibili le firme per libblkid.

wipefs non cancella il filesystem stesso né altri dati dal dispositivo. Se utilizzato senza alcuna opzione, wipefs elenca tutti i filesystem visibili e gli offset delle loro firme di base.

wipefs chiama lo ioctl BLKRRPART quando ha cancellato una firma della tabella delle partizioni per informare il kernel della modifica.

Ciò ha molti vantaggi come l' informazione del kernel sulla modifica (quindi non si ottengono errori durante la formattazione in seguito), non la cancellazione di dati o file system e così via.


-1

U3 ha un'utilità per rimuovere la loro partizione U3. Rimuove anche la partizione / dispositivo creato dall'utilità che crea l'iso 9660. Ciò è stato confermato solo su una chiavetta USB u3, ma ora è in grado di essere formattato e recuperare completamente lo spazio come unità flash. Potresti provarci.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.