我目前正在开发一个基于 CentOS 6.7 (2.6) 内核的自定义 initrd以下模块已加载。
initrd 旨在将旧 RHEL 系统中的文件备份到内存中、卸载磁盘、擦除磁盘,最后将dd
预构建的 CentOS 系统复制到磁盘上。
CentOS系统是在VMware上构建的,然后将vmdk导出并转换为原始格式qemu-img
。
从测试来看,整个过程运行得非常好,一旦dd
完成,系统就可以重新启动并正常启动。
当前的障碍是,一旦dd
操作完成,我无法挂载 LVM 磁盘以将文件复制回来。
正如您在模块列表中看到的那样,LVM 驱动程序已存在并已加载,如果我运行 a,fisk -l
它会显示sda1
为启动分区(非 LVM)和sda2
LVM 分区。运行时pvscan -vvv
它看到/dev/sda2
但说No label detected
。
答案1
由于您擦除了磁盘,正在运行的内核将不知道可用的分区。
您可以运行partprobe
(与分区实用程序一起提供parted
)以在正在运行的内核中重新加载正确的分区信息。
如果您没有partprobe
(不需要小光盘parted
?),您可以hdparm -z /dev/yourdrive
按照所述使用@ko-dos