chenall / grub4dos

外部命令和工具源码:https://github.com/chenall/grubutils 下载:
http://grub4dos.chenall.net
GNU General Public License v2.0
654 stars 136 forks source link

lvm 分区的问题 #417

Closed 1457384613gh closed 1 year ago

1457384613gh commented 1 year ago

@a1ive 大佬您好 我正好,还有一件事情要问你。

lvm分区上新建了一个卷组,卷组上之建立了一个逻辑卷,被映射成了 /dev/dm-0。 然后,我把 /dev/dm-0 当作一个虚拟磁盘,我把 虚拟机用过的虚拟磁盘 .img 写入 /dev/dm-0。 然后, sudo kpartx -av /dev/dm-0 映射多分区成功,还可以挂载文件系统。 dm-0 成了有gpt分区表的虚拟磁盘,上面还有Linux操作系统。

然后,我想 用 GRUB4DOS UEFI 或 UEFI grub2 去启动它。

linux ($disk,7)/vmlinuz
initrd ($disk,7)/initramfs.img

boot 在 虚拟磁盘的7号分区里面。

我想让,disk=逻辑卷,怎么做到。

linux 可以使用 kpartx, grub 或 GRUB4DOS 呢?

loopback disk file.img是对待 .img 文件的。 对待 逻辑卷,使用什么命令?

如何 找到 lvm分区中的逻辑卷,并且 把逻辑卷 当作 虚拟磁盘 去 读取分区表,映射所有的分区?

1457384613gh commented 1 year ago

现在是这个情况。 IMG_20230626_091647.jpg

a1ive commented 1 year ago

GRUB4DOS 不支持 LVM。 GRUB2 支持 LVM ,但是我没用过,不了解。

linux 可以使用 kpartx, grub 或 GRUB4DOS 呢?

你的这种方案需要写入磁盘修改分区表。在 bootloader 环境下风险非常大,不可行。

1457384613gh commented 1 year ago

你的这种方案需要写入磁盘修改分区表。

这个并没有修改真实磁盘的分区表。

只是在 lvm 逻辑卷 上写了分区表,分区表 在 lvm 分区里面。

相当于 隔离了,与 .img 类似,区别在于 不是文件,是个逻辑卷。

相当于 真实的硬盘 的 分区 中 的一小部分 加上了 分区表,小部分模拟成 块设备。

a1ive commented 1 year ago

你的这种方案需要写入磁盘修改分区表。

这个并没有修改真实磁盘的分区表。

只是在 lvm 逻辑卷 上写了分区表,分区表 在 lvm 分区里面。

相当于 隔离了,与 .img 类似,区别在于 不是文件,是个逻辑卷。

相当于 真实的硬盘 的 分区 中 的一小部分 加上了 分区表,小部分模拟成 块设备。

重点是不应该写入磁盘。 这样做比写入主分区表还要危险。

1457384613gh commented 1 year ago

危险

有哪些风险呢? 我不太知情。