不良ブロックを備えた16Gフラッシュドライブがあります。
# f3read /media/morfik/224e0447-1b26-4c3e-a691-5bf1db650d21
SECTORS ok/corrupted/changed/overwritten
Validating file 1.h2w ... 2097112/ 40/ 0/ 0
Validating file 2.h2w ... 2097120/ 32/ 0/ 0
Validating file 3.h2w ... 2097098/ 54/ 0/ 0
Validating file 4.h2w ... 2097148/ 4/ 0/ 0
Validating file 5.h2w ... 2097114/ 38/ 0/ 0
Validating file 6.h2w ... 2097152/ 0/ 0/ 0
Validating file 7.h2w ... 2097152/ 0/ 0/ 0
Validating file 8.h2w ... 2097152/ 0/ 0/ 0
Validating file 9.h2w ... 2097152/ 0/ 0/ 0
Validating file 10.h2w ... 2097152/ 0/ 0/ 0
Validating file 11.h2w ... 2097152/ 0/ 0/ 0
Validating file 12.h2w ... 2097152/ 0/ 0/ 0
Validating file 13.h2w ... 2097152/ 0/ 0/ 0
Validating file 14.h2w ... 2097152/ 0/ 0/ 0
Validating file 15.h2w ... 90664/ 0/ 0/ 0
Data OK: 14.05 GB (29450624 sectors)
Data LOST: 84.00 KB (168 sectors)
Corrupted: 84.00 KB (168 sectors)
Slightly changed: 0.00 Byte (0 sectors)
Overwritten: 0.00 Byte (0 sectors)
Average reading speed: 18.77 MB/s
ご覧のとおり、最初の5つのショーにのみ破損したセクターがあります。残りは大丈夫です。問題は、このペンドライブにライブ画像を書き込もうとすると、50MiBが送信された後にジョブが停止することです。
最初から5Gをスキップし、破損したスペースの後ろにミラーを入れて正常に起動する方法はありますか?
ベストアンサー1
ドライブの先頭にGRUB(または他のブートローダ)をインストールするのに十分なスペースがあり、LiveCDがループマウントISOをサポートしている場合は、不良ブロックがマップされたファイルシステムを作成するか、パーティションを分割して問題を回避できます。まず、不良ブロックが発生します。
grub.cfg
Ubuntu Live CDの起動エントリの例:
menuentry "Ubuntu 15.04 Desktop amd64" {
set isofile="ubuntu-15.04-desktop-amd64.iso"
loopback loop (hd0,msdos3)/$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=/$isofile noprompt noeject
initrd (loop)/casper/initrd.lz
}
そのため、GRUB2は奇妙なので、ISOファイルから直接カーネルとinitramfsを抽出することもあります。ただし、ISOに加えて直接ループマウントしてカーネルファイルとinitramfsファイルを独立してコピーすると、この機能は完全に重複します。したがって、システムには/boot
カーネル、initramfs、およびisoファイルという3つのファイルがあります。
これにより、必要なブートローダを使用できるため、他のブートローダでは次のようになります。
linux vmlinuz.efi boot=casper iso-scan/filename=ubuntu-15.04-desktop-amd64.iso noprompt noeject
initrd initrd.lz
ループのインストールとisoファイルの検索はLive CDのinitramfs自体で処理されるため、パラメータはCDスタイルによって異なります。
通常、この技術は単一のUSBメモリースティックに多数のLive CDを挿入するために使用されます。また、不良ブロック領域を防ぐために発生します(正しく分割/フォーマットされている場合)。