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를 매우 행복하게 만들었습니다.