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의 백업 부팅 섹터가 포함됩니다.

즉, 다음 두 명령을 호출하여 문제를 해결할 수 있습니다( 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,nocreat두 번째 명령 끝에 매개변수를 추가합니다. 그렇지 않으면 이미지가 잘리고 삭제됩니다.

나는 이 명령을 테스트했고 fsck.vfat를 매우 행복하게 만들었습니다.

관련 정보