我在以前包含 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 发出了一些警告,但我能够再次启动磁盘。