fat32バックアップブートセクタにsyslinuxをインストールする方法

fat32バックアップブートセクタにsyslinuxをインストールする方法

syslinuxをfat32にインストールし、バックアップブートセクタを書き込む方法。メインブートセクタにのみ書き、fsck.fatが文句を言います。 fsck.fatを使用して問題を解決できますが、これを行うには対話型モードで実行する必要があるため、スクリプトを介して実行することはできません。

/tmp # fallocate -l 50m test_image
/tmp # mkfs.fat -F32 test_image   
mkfs.fat 4.1 (2017-01-24)
/tmp # syslinux --directory syslinux --install test_image

/tmp # fsck.vfat test -a
fsck.fat 4.1 (2017-01-24)
There are differences between boot sector and its backup.
This is mostly harmless. Differences: (offset:original/backup)
  3:53/6d, 4:59/6b, 5:53/66, 6:4c/73, 7:49/2e, 8:4e/66, 9:55/61, 10:58/74
  , 90:fa/0e, 91:fc/1f, 92:31/be, 93:c9/77, 94:8e/7c, 95:d1/ac, 96:bc/22
  , 97:76/c0, 98:7b/74, 99:52/0b, 100:06/56, 101:57/b4, 102:1e/0e, 103:56/bb
  , 104:8e/07, 105:c1/00, 106:b1/cd, 107:26/10, 108:bf/5e, 109:78/eb
------------ SNIP ---------------------------------------------------------
  , 484:0d/00, 485:0a/00, 504:fe/00, 505:02/00, 506:b2/00, 507:3e/00
  , 508:18/00, 509:37/00
  Not automatically fixing this.
test: 2 files, 353/100792 clusters

答え1

~によるとhttps://en.wikipedia.org/wiki/Design_of_the_FAT_file_system:

FAT32ファイルシステムの場合、予約されたセクタには、論理セクタ1のファイルシステム情報セクタと論理セクタ6のバックアップブートセクタが含まれます。

つまり、次の2つのコマンドを呼び出して問題を解決できます(sdXXたとえば、パーティションと交換sdb1)。

sudo dd if=/dev/sdXX of=bootrec.dat bs=512 count=1
sudo dd if=bootrec.dat of=/dev/sdXX bs=512 seek=6

ディスクイメージファイルを使用している場合は、次のことができます。〜しなければならないconv=notrunc,nocreat2番目のコマンドの最後にパラメータを追加します。それ以外の場合、画像は切り捨てられ、削除されます。

私はこのコマンドをテストし、fsck.vfatをとても幸せにしました。

関連情報