这主要是出于教育目的,因此我不必不断地打开和关闭计算机。
答案1
我假设您的问题是关于如何调试启动过程,即在真正重新启动之前测试新的 grub 配置是否能按预期工作:
通过虚拟化,这是可能的。
但是,如果您只是启动当前在虚拟机中再次运行系统的物理磁盘,则会出现许多极端情况。您必须将所有未完成的写入同步到磁盘,刷新缓存,然后使用严格只读视图驱动器的(也许在写时复制层上)。你还必须完全禁用网络- 或者它会下载您的电子邮件并将其从虚拟机内的服务器中删除,然后这些数据将在关闭时丢失。
即便如此,如果虚拟机使用的文件系统已经在使用中并被主机修改,它也可能会崩溃。您可以使用适当的快照来解决此问题,但通常不能仅对整个驱动器进行快照,对单个 LV 进行快照根本没有帮助,因为虚拟机在启动时只会看到相同的快照结构。
因此,最好在虚拟机运行时主机保持空闲状态并且没有文件系统活动,或者在关键启动阶段后简单地停止虚拟机。由于虚拟机是只读的,您可以直接关闭它/杀死它/无需在虚拟机内正确关闭。因此,即使虚拟机崩溃了,除了让调试变得困难之外,也没什么关系。
只要您了解其后果,它就可以归结为一个简单的 qemu,基本上:
sync
echo 3 > /proc/sys/vm/drop_caches
qemu -net none -drive file=/dev/disk,readonly
# leave out readonly for a copy-on-write device:
qemu -net none -drive file=/dev/mapper/copy-on-write-disk
(qemu 需要更多选项才能正常运行,请检查任何 qemu 指南以获取更多详细信息 - 例如,如果您使用像 Gentoo 这样的发行版,它针对您也需要的一种类型的 CPU 进行了严格优化-cpu host
- 但这或多或少是它的要点。 )