无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: 2011niumao
打印 上一主题 下一主题

[教程] 从 固定VHD与只读squashfs引导LINUX, UBUNTU ARCH Fedora Opensuse Mageia五种

    [复制链接]
571#
 楼主| 发表于 2022-10-16 10:21:25 | 只看该作者
本帖最后由 2011niumao 于 2022-10-16 10:33 编辑
piazini 发表于 2022-10-15 21:48
2011niumao大佬,

在ubt18.04的VHD扩容,直接用 DiskGenius 克隆功能,复制到新 VHD 文件里,就完成扩容 ...

使用DG来扩容的问题我不理解,有可能是根分区的UUID与原始系统不同,需要手工编辑/etc/fstab文件里的根分区信息。
推荐一种我用的方法,主要是在ubuntu系统下把现有的ubuntu系统复制到另一个vhd里去:

在windows下制作一个新的容量很大的固定大小vhd。在VBox中把这个新vhd附加到ubuntu系统中,启动到旧ubuntu中,然后把根分区,新vhd挂载到两个临时目录内,使用rsync命令复制旧系统文件到新vhd内。最后手工编辑新vhd内/etc/fstab文件,把根分区UUID修改正确即可。这些操作也可以在电脑启动到vhd内ubuntu系统里后进行的。主要命令如下
  1.     sudo mkdir /tmp/mm /tmp/tt
  2.     sudo mount /dev/mapper/loop0p2 /tmp/mm
  3.     sudo mount /dev/mapper/loop1p2 /tmp/tt
  4.     sudo rsync -SHav /tmp/mm/* /tmp/tt/
复制代码

回复

使用道具 举报

572#
 楼主| 发表于 2022-10-16 10:41:40 | 只看该作者

local文件里增加的代码,注意空格

本帖最后由 2011niumao 于 2022-10-16 10:43 编辑
  1. if  [    -n    "$KLOOP"   ] ;  then
  2.         ### reset the value of the root variable
  3.         HOSTDEV="${ROOT}"
  4.         NEWROOT="${rootmnt}"
  5.         [   -n    "$KROOT"   ]   &&   ROOT="$KROOT"
  6.         [   -n    "$KROOT"   ]     ||       ROOT="/dev/loop0"
  7.         export    ROOT
  8.         realroot="$ROOT"
  9.         ###  auto probe the fs-type of the partition in which vhd-file live and mount it  /host
  10.         mkdir   -p    /host
  11.         if [    -e   ${NEWROOT}${KLOOP}    ] ;   then
  12.                 mount    --move    $NEWROOT /host
  13.         else        
  14.                 if   [    -z    "$HOSTFSTYPE"   ] ;    then
  15.                         HOSTFSTYPE="$(blkid   -s   TYPE   -o   value "${HOSTDEV}")"
  16.                         [   -z    "$HOSTFSTYPE"    -o   "${HOSTFSTYPE}"   =   "ntfs"  ]   &&   HOSTFSTYPE="ntfs-3g"
  17.                 fi
  18.                 [   "${HOSTFSTYPE}"    =    "ntfs-3g"   ]   ||   modprobe    ${HOSTFSTYPE}
  19.                 mount    -t    ${HOSTFSTYPE}   -o   rw     ${HOSTDEV}      /host
  20.         fi
  21.         ### mount the vhd-file on a loop-device
  22.         if    [    "${KLOOP#/}"    !=     "${KLOOP}"   ]  ;   then               
  23.                 modprobe  loop  
  24.                 kpartx     -av     /host${KLOOP}
  25.                 [   -e    "$realroot"    ]    ||     sleep 3
  26.         fi
  27.         ### mount the realroot / in vhd-file on $NEWROOT
  28.         if    [   -z   "${KLOOPFSTYPE}"    ] ;    then
  29.                 KLOOPFSTYPE="$(blkid   -s   TYPE   -o   value   "$realroot")"
  30.                 [   -z   "${KLOOPFSTYPE}"   ]    &&    KLOOPFSTYPE="ext4"
  31.         fi
  32.         [   -e    "$realroot"    ]     ||     sleep 3
  33.         mount    ${roflag}    -t    "${KLOOPFSTYPE}"      $realroot        $NEWROOT
  34. fi
复制代码
回复

使用道具 举报

573#
 楼主| 发表于 2022-10-16 10:57:20 | 只看该作者

local文件修订注意空格

  1. if   [  -z   "$KLOOP"   ]  ;    then

  2.         if [ "${readonly}" = "y" ] && \
  3.            [ -z "$LOOP" ]; then
  4.                 roflag=-r
  5.         else
  6.                 roflag=-w
  7.         fi

  8.         # FIXME This has no error checking
  9.         [ -n "${FSTYPE}" ] && modprobe ${FSTYPE}

  10.         checkfs ${ROOT} root

  11.         # FIXME This has no error checking
  12.         # Mount root
  13.         mount ${roflag} ${FSTYPE:+-t ${FSTYPE} }${ROOTFLAGS} ${ROOT} ${rootmnt}
  14.         mountroot_status="$?"
  15. fi
复制代码
回复

使用道具 举报

574#
发表于 2022-10-16 16:52:15 | 只看该作者
2011niumao 发表于 2022-10-15 13:47
第一,按照你的描述,菜单里面,应该是/dev/mapper/loop0p3
第二,root=UUID=${ddeeff}这个没错,但经 ...

安装了ubuntu2204,一次搞定,就是开机稍微久点。

mint就是不行。
回复

使用道具 举报

575#
发表于 2022-10-16 21:26:50 | 只看该作者
2011niumao 发表于 2022-10-15 13:58
赞!!!  EFI模式引导,我有大量失败例子和成功例子。

主要原因是grub2的一些功能,比如查找文件,查找 ...

谢谢大神回复。回头再试试。现在在上夜班加班。
回复

使用道具 举报

576#
发表于 2022-10-31 11:34:41 | 只看该作者
brux 发表于 2022-10-16 16:52
安装了ubuntu2204,一次搞定,就是开机稍微久点。

mint就是不行。

对,我也发现22启动比18 慢
回复

使用道具 举报

577#
发表于 2022-10-31 11:35:18 | 只看该作者

总结一句话就是,空行可以有,但是空行不要有空格

点评

赞!!!  发表于 2022-10-31 16:13
回复

使用道具 举报

578#
发表于 2022-10-31 11:53:17 | 只看该作者
回复

使用道具 举报

579#
发表于 2022-11-6 15:10:19 | 只看该作者
感谢楼主提供 引导LINUX 的教程,长见识了
回复

使用道具 举报

580#
发表于 2022-11-23 13:11:00 | 只看该作者
2011niumao 发表于 2017-7-7 19:20
使用动态vhd,qemu-nbd方式是可以的,但是我测试后很卡顿,不太推荐。可以把附件解压到
你的主目录以 ...

你好,请问一下,动态的 ubuntu vhd 用 qemu-nbd 方案,启动的时候 vhd 是可以正确挂起来,但是 switch root 的时候提示 nbd shutting down sockets ,然后就是一系列 io 错误,是被 kill 掉了吗? 用 exec 方式启动也是一样。
回复

使用道具 举报

581#
发表于 2022-12-1 02:04:46 来自手机 | 只看该作者
做个记号,好好学习
回复

使用道具 举报

582#
发表于 2022-12-5 20:12:28 | 只看该作者
有做好的ubuntu和deepin 可以分享吗?看着有些头晕
回复

使用道具 举报

583#
发表于 2022-12-7 09:22:15 | 只看该作者
第五步 输入  sudo gedit /etc/initramfs-tools/modules 提示sudo: gedit:找不到命令

点评

gedit是个文本编辑器,找不到说明没安装呗,可以用vi 或者 vim,或者直接装一个  详情 回复 发表于 2022-12-12 10:40
回复

使用道具 举报

584#
发表于 2022-12-12 10:40:11 | 只看该作者
abovo484 发表于 2022-12-7 09:22
第五步 输入  sudo gedit /etc/initramfs-tools/modules 提示sudo: gedit:找不到命令

gedit是个文本编辑器,找不到说明没安装呗,可以用vi 或者 vim,或者直接装一个

点评

多谢,现在用Ventoy的Linux vDisk 文件启动插件成功,在ubuntu里面启动一个vtoyboot脚本就好  详情 回复 发表于 2022-12-12 12:20
回复

使用道具 举报

585#
发表于 2022-12-12 12:20:45 | 只看该作者
want20 发表于 2022-12-12 10:40
gedit是个文本编辑器,找不到说明没安装呗,可以用vi 或者 vim,或者直接装一个

多谢,现在用Ventoy的Linux vDisk 文件启动插件成功,在ubuntu里面启动一个vtoyboot脚本就好
回复

使用道具 举报

586#
发表于 2023-1-8 23:27:54 | 只看该作者
留个标记, 膜拜大神
回复

使用道具 举报

587#
发表于 2023-1-9 00:10:21 | 只看该作者
谢谢分享
回复

使用道具 举报

588#
发表于 2023-1-14 15:36:01 | 只看该作者
看看楼主的教程帖子,学习固定VHD系统的小知识啊
回复

使用道具 举报

589#
发表于 2023-4-30 00:53:10 | 只看该作者
哪里可以看到楼主的教程?
回复

使用道具 举报

590#
发表于 2023-4-30 01:25:33 | 只看该作者
谢谢分享
回复

使用道具 举报

591#
发表于 2023-5-13 21:07:38 | 只看该作者
谢谢分享
回复

使用道具 举报

592#
发表于 2023-5-13 22:36:30 | 只看该作者
多谢分享,学习了。
回复

使用道具 举报

593#
发表于 2023-5-31 12:31:58 | 只看该作者
本帖最后由 paodiao 于 2023-5-31 16:14 编辑

编辑
回复

使用道具 举报

594#
发表于 2023-5-31 16:16:49 | 只看该作者
大佬,我按你的教程折腾qemunbd引导qcow2的linux成功了。就是图形界面显示有bug,颜色有些不对,而且中间有条大黑边。这种显示bug有什么解决经验吗?是驱动的问题还是设置的问题,还是别的什么问题?
回复

使用道具 举报

595#
发表于 2023-6-2 07:01:10 来自手机 | 只看该作者
原来ubuntun可以vhd的
回复

使用道具 举报

596#
发表于 2023-6-2 11:43:02 | 只看该作者
学习了
回复

使用道具 举报

597#
发表于 2023-8-20 19:41:30 | 只看该作者
want20 发表于 2022-11-23 13:11
你好,请问一下,动态的 ubuntu vhd 用 qemu-nbd 方案,启动的时候 vhd 是可以正确挂起来,但是 switch r ...

我在ubuntu上没有这个问题但是在fedroa 的dracut上有存在initrd 切换到根文件出现nbd 设备被kill
回复

使用道具 举报

598#
发表于 2025-9-21 23:16:27 | 只看该作者
本帖最后由 piazini 于 2025-9-21 23:20 编辑



@2011niumao 大佬,又来请教了。
最近需要 ubt 22.04   之前制作成功过,但是不知道什么时候把虚拟机删了,只能重新制作。

这次制作的总是卡在 挂载 /dev/mapper/loop0p1 on /root failed : no such file or directory
因为屏幕滚动比较快,所以隐约能看到  no such file or directory 这个提示
替换的文件都是用你发的这个
ubuntukloopnew.zip  2021-5-14
http://bbs.wuyou.net/forum.php?m ... 079&pid=4296362

请问是啥原因?
回复

使用道具 举报

599#
发表于 2025-9-23 07:59:36 | 只看该作者
本帖最后由 piazini 于 2025-9-25 18:06 编辑
piazini 发表于 2025-9-21 23:16
@2011niumao 大佬,又来请教了。
最近需要 ubt 22.04   之前制作成功过,但是不知道什么时候把虚拟机 ...

问题解决,特此记录。

这次是在软件上踩了个大坑。之前转换用到 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无法挂载。






回复

使用道具 举报

600#
发表于 2025-9-24 19:16:03 | 只看该作者
占楼
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-10-15 17:20

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表