Ok, 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 da scrittura interna sull'unità. non ce ne sono interruttori esterni di protezione da scrittura/blocco, ma questo è l'output in dmesg
quando corro
dd if=/dev/zero of=/dev/sdb
come root:
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
Nota i commenti sulla protezione! Tuttavia, quando collego il dispositivo, ottengo,
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
Tieni presente che questo messaggio indica che il dispositivo non Protetto da scrittura! Quindi, sfortunatamente, sembra che il disco ce l'abbia (cioè kaput ).
Sono nuovo in questa roba da amministratore di sistema Linux, quindi quando ho avuto esattamente lo stesso problema ho cercato e pungolato senza follia per il mio metodo, ma sono riuscito a rimuovere l'iso9660 fs e recuperare la pen drive.
sudo fdisk -l /dev/sdb1
restituito
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
Allora 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, seleziona fdisk per creare una tabella delle partizioni 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 interpretato i messaggi restituiti nel senso che almeno ho "rotto" iso9660 fs, quindi ho provato 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 questo mi ha lasciato con la directory "lost+found" sulla pen drive.
sudo mount /dev/sdb1 /media/
ls /media/
lost+found
Alla fine, sono andato al sito Web di Ubuntu (http://www.ubuntu.com/download/ubuntu/download, sezione 2) e ho usato la chiavetta per creare un'immagine avviabile di Ubuntu per l'uso di prova, e me lo ha permesso. La bellezza delle immagini di Ubuntu create sulla chiavetta in questo modo è che possono essere cancellate facilmente e la chiavetta recuperata per altri usi.
Menziono quest'ultimo passaggio perché col senno di poi mi chiedo se avessi fatto proprio quello in primo luogo che avrebbe funzionato, non so. Come accennato, sono nuovo in questa roba Linux e sto provando diverse distribuzioni (ad es. Fedora, Ubuntu, ecc.) su cd live con qualunque supporto sia più conveniente, e sicuramente rompo un sacco di cose lungo la strada.
mkdosfs -I /dev/sdb
creerà un file system vfat sull'unità. Il -I deve essere passato se si desidera che il file system venga creato sull'intero disco e non su una partizione. Se vuoi prima partizionare l'unità, usa fdisk. Ovviamente fdisk non può leggere l'unità ora, perché non ha alcuna partizione. Ma sono sicuro che sarà in grado di scriverci.