|
其实这个和 grub4dos 的关系不大,主要是 grub2 的问题。
我在 chroot 环境中安装 funtoo linux ,在安装 grub2 的时候失败,似乎是自动生成的 device.map 不识别我的设备,但我不了解 device.map 的格式,所以想请教一下,这里有没有人解决过类似的问题。
这个是我的分区映射:
- blkid
- /dev/sdc1: LABEL="Data" UUID="00091347000E4F86" TYPE="ntfs"
- /dev/mapper/isw_cbefeadhaa_SYSTEM1: LABEL="boot" UUID="ae0377af-4844-4e11-aaef-701a97d3ce9a" TYPE="ext2"
- /dev/mapper/isw_cbefeadhaa_SYSTEM2: LABEL="gentoo" UUID="2a68f719-ccfc-498d-b84f-345d88e94e7b" TYPE="ext3"
- /dev/mapper/isw_cbefeadhaa_SYSTEM3: UUID="3476457E764541BA" TYPE="ntfs"
- /dev/mapper/isw_cbefeadhaa_SYSTEM5: LABEL="Data" UUID="00040342000C0527" TYPE="ntfs"
- /dev/mapper/isw_cbefeadhaa_DATA1: LABEL="home" UUID="19740a38-e839-4c39-a0a9-a07e6fa28b18" TYPE="ext3"
- /dev/mapper/loop0p1: UUID="0d5ff6f3-7e18-46c4-82c6-b7d63392bf96" TYPE="ext2"
- /dev/mapper/loop0p3: UUID="be4a01d8-bc47-46a0-bba2-57bd49f7bb55" TYPE="swap"
- /dev/mapper/loop0p4: UUID="0babbc6e-82a7-4643-bd4e-09198de5936b" TYPE="ext4"
复制代码
虚拟磁盘是用 dd 做出的空文件,用 parted 分成 gpt 的分区,然后用 kpartx 命令映射到上面的位置,就是最后那三个分区。
下面是自动映射的 loop 设备的情况。
- parted /dev/loop0 print
- Model: (file)
- Disk /dev/loop0: 68.7GB
- Sector size (logical/physical): 512B/512B
- Partition Table: gpt
- Number Start End Size File system Name Flags
- 1 1049kB 500MB 499MB ext2 boot boot
- 2 500MB 532MB 31.5MB GRUB bios_grub
- 3 532MB 8724MB 8193MB linux-swap(v1) swap
- 4 8724MB 68.7GB 60.0GB ext4 root
复制代码
loop0p4 挂载到 /mnt/funtoo , loop0p1 挂载到 /mnt/funtoo/boot ,然后在 /mnt/funtoo 解压了 funtoo 的 stage3 文件,再 chroot 进去。直接安装 grub2 到 loop0 设备,下场是这样:
- grub-install /dev/loop0
- /sbin/grub-probe: error: no mapping exists for `loop0p1'.
- Auto-detection of a filesystem module failed.
- Please specify the module with the option `--modules' explicitly.
复制代码
http://savannah.gnu.org/bugs/?25581
上面和我遇到的情况差不多,看起来 grub 系列的 grub-mkdevicemap 对 multipath 设备(raid lvm 等)的支持一直比较差的样子。 |
|