| 本帖最后由 piazini 于 2025-9-25 18:06 编辑 
 问题解决,特此记录。
 
 这次是在软件上踩了个大坑。之前转换用到 StarWindConverter V2.0 这个软件,
 但是 先找到了Vmdk2Vhd.exe 这个软件,就一直用Vmdk2Vhd.exe来转换,总是不能顺利启动VHD系统,不成功。
 
 我的扩容方法是,在VMware虚拟机里安装完,用软件把虚拟机的 .vmdk 文件转换成 .vhd 然后去挂载引导。
 但是,因为上一次制作还是 2022年10月,这次制作的时候,就想不起来上次的制作过程。
 
 然后就一边想,一边做,一边看之前写的记录,慢慢回忆。然后用到什么工具,就在磁盘里搜索 ,
 还好有整理的习惯,工具找到(好消息:找到了;坏消息,找错了
  ,害我在这浪费两天时间) 
 解决问题的突破:
 在回看启动过程录制的视频时,发现总是提示/root不能挂载,看错误提示时,发现 script 路径好像有些熟悉,
 突然想到 script 不就是需要修改的文件的某个路径么,又想到 2011niumao 大佬,在上面楼层回复提到过,说在 local 文件里踩了很多坑,
 
 然后,去仔细看看 local 的 local_mount_root() 修改过的代码,尝试在里面随便加点 echo 看看能不能打印出信息到屏幕,经过测试,是可以打印的,然后在 函数的修改位置 加上开启详细执行过程  set -x 命令,重启看到了整个挂载过程。
 
 通过打印信息和代码对比,在内存系统中的 /host已经能看到物理磁盘上的内存时,说明 ntfs-3g 是起作用的,识别到了 ntfs 磁盘。又继续看,一行行分析,
 
 发现执行到 kpartx -av /host${KLOOP} 时, 挂载vhd文件失败,为啥失败呢?
 
 突然想到,是不是vmkd到vhd 转换软件的问题,赶快又用磁盘里  StarWindConverter V2.0 这个软件转换完,启动成功了。
 
 之前,一直以为是文件没修改对,一直看修改过文件,也没看出哪里有错误。因为之前有改好的文件,直接替换了,启动也不成功;还以为是文件里多空格导致的。
 
 
 在显示出"(initramfs)"时,说明已经启动到内存系统里了。
 
 ------------------------------2025-09-25 补充:
 
 经过试验,是因为Vmdk2vhd把固定格式磁盘转换成动态格式磁盘, 从转换成vhd大小即可判断(vmdk 12G, vhd 10G);再次确认,加载到VM里没有显示“预分配”, 所以kpart无法挂载。 
 
 
 
 
 
 |