Dobře, ukázalo se, že v tomto případě něco (možná, když jsem zapisoval souborový systém iso-9660 na disk) spustilo nějakou formu interní ochrany proti zápisu na disku. Nejsou ne externí přepínače ochrany proti zápisu / hold, ale přesto je to výstup v dmesg
když běžím
dd if=/dev/zero of=/dev/sdb
jako 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
Všimněte si tam uvedených komentářů o ochraně! Když však zařízení zapojím, dostanu,
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
Tato zpráva říká, že zařízení není chráněno proti zápisu! Takže to bohužel vypadá, že to disk má (tj. kaput ).
Jsem nový v této věci správce systému Linux, takže když jsem měl přesně stejný problém, šťouchl jsem a šťouchl bez šílenství do své metody, ale podařilo se mi odstranit iso9660 fs a získat zpět flash disk.
sudo fdisk -l /dev/sdb1
vráceno
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
Tak jsem to zkusil
sudo fdisk /dev/sdb1
Command (m for help): m
Command action
. . .
následuje
Command (m for help): d Extended
Selected partition 1
Command (m for help): v
Remaining 31324159 unallocated 512-byte sectors
Poté, když jsem byl znovu vyzván, vyberte fdisk k vytvoření prázdné tabulky oddílů DOS (což jsem si myslel, že bych mohl později přepsat, čím jsem chtěl)
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.
Vrácené zprávy jsem chápal tak, že jsem alespoň "rozbil" iso9660 fs, takže jsem šel zkusit 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.
To vše mi zanechalo adresář „lost+found“ na flash disku.
sudo mount /dev/sdb1 /media/
ls /media/
lost+found
Nakonec jsem šel na webovou stránku Ubuntu (http://www.ubuntu.com/download/ubuntu/download, sekce 2) a použil jsem hůl k vytvoření bootovatelného obrazu Ubuntu pro zkušební použití, a to mi umožnilo. Krása obrázků Ubuntu vytvořených tímto způsobem spočívá v tom, že je lze snadno smazat a získat zpět pro jiné použití.
Zmiňuji tento úplně poslední krok, protože při zpětném pohledu by mě zajímalo, jestli jsem to v první řadě udělal, že by to fungovalo, nevím. Jak již bylo zmíněno, jsem v této věci s Linuxem nový a zkouším různá distra (např. Fedora, Ubuntu atd.) na živých cd s jakýmkoliv médiem, které je nejvhodnější, a určitě jsem během toho spoustu věcí rozbil.
mkdosfs -I /dev/sdb
vytvoří na disku souborový systém vfat. -I musí být předáno, pokud chcete, aby byl souborový systém vytvořen na celém disku a ne na oddílu. Pokud chcete disk nejprve rozdělit, použijte fdisk. Fdisk teď samozřejmě nemůže číst disk, protože nemá žádné oddíly. Ale jsem si jistý, že do něj bude moci psát.