이전에 ISO9660 파일 시스템이 포함된 디스크에 Debian/Gnu-Linux를 설치했지만 grub을 설치할 수 없습니다:
root@debian:~# grub-install /dev/sdb
/usr/sbin/grub-setup: error: hd1 appears to contain a iso9660 filesystem which isn't known to reserve space for DOS-style boot. Installing GRUB there could result in FILESYSTEM DESTRUCTION if valuable data is overwritten by grub-setup (--skip-fs-probe disables this check, use at your own risk).
현재 머신에 연결되어 있는 다른 디스크(/dev/sda)에 설치할 수 있었지만 제거하고 싶습니다.
install-mbr /dev/sdb
ISO9660 블록이 제거되기를 바라면서 시도했지만 grub-install에서는 여전히 오류가 발생합니다.
아마도 /dev/sda에서 /dev/sdb로 일부 블록을 복사할 수 있을 것입니다. 하지만 그 중 몇 개가 있습니까?
답변1
dd 명령을 사용하여 mbr(마스터 부트 레코드)을 삭제할 수 있습니다. MBR(마스터 부트 레코드)은 512바이트 부트 섹터이며 하드 디스크 파티션 데이터 저장 장치의 첫 번째 섹터입니다.
MBR 크기 이해
MBR 크기는 다음과 같습니다(바이트 단위).
446 bytes - Bootstrap.
64 bytes - Partition table.
2 bytes - Signature.
= 512 bytes
경고하다!이러한 예제를 실행하면 컴퓨터가 충돌할 수 있습니다. 다음 명령은 모든 파티션 정보를 포함하여 MBR을 완전히 삭제합니다. 따라서 올바른 장치 이름과 블록 크기(바이트)를 사용해야 합니다.
모든 파티션을 포함한 MBR 삭제
터미널을 열고 다음 명령을 입력하여 모든 것을 삭제합니다.
# dd if=/dev/zero of=/dev/sdc bs=512 count=1
예제 출력:
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.00308483 s, 166 kB/s
어디,
if=/dev/zero - Read data from /dev/zero and write it to /dev/sdc.
of=/dev/sdc - /dev/sdc is the USB drive to remove the MBR including all partitions.
bs=512 - Read from /dev/zero and write to /dev/sdc up to 512 BYTES bytes at a time.
count=1 - Copy only 1 BLOCK input blocks.
MBR을 삭제하는 유일한 명령
다음 명령은 MBR을 지우지만 파티션은 지우지 않습니다.
# dd if=/dev/zero of=/dev/sdc bs=446 count=1
어디,
bs=446 - Read from /dev/zero and write to /dev/sdc up to 446 BYTES bytes at a time.
답변2
마침내 grub-setup을 직접 호출하여 작동하게 되었습니다.
grub-setup --force --skip-fs-probe /dev/sdX
Grub-setup에서 몇 가지 경고가 표시되었지만 디스크를 다시 부팅할 수 있었습니다.