无忧启动论坛

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

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

    [复制链接]
511#
 楼主| 发表于 2021-6-1 08:34:26 | 只看该作者
piazini 发表于 2021-5-31 21:35
楼主,经过使用在Docker里load总共15G左右的images时就会卡死,无意间在字符界面发现了问题,下图,网上 ...

这个就不会了。bufffer i/o问题历史悠久,不知道应该怎么解决。实际上之所以手动编辑 ntfs-3g,就是为了解决这一问题的。现在看可能只是部分解决了。需要高手来了。
回复

使用道具 举报

512#
发表于 2021-6-1 11:42:30 | 只看该作者
piazini 发表于 2021-5-31 21:35
楼主,经过使用在Docker里load总共15G左右的images时就会卡死,无意间在字符界面发现了问题,下图,网上 ...

是不是因为vhd在物理磁盘上不是连续文件的导致的。
我原来不是连续的,系统不跑什么放在那里就会卡死,浏览网页更容易。后来拿移动硬盘折腾了一次数据,目前好多了。
我是固态,不过是sata接口的。
希望能帮到您
回复

使用道具 举报

513#
发表于 2021-6-2 11:02:19 | 只看该作者
2011niumao 发表于 2021-6-1 08:34
这个就不会了。bufffer i/o问题历史悠久,不知道应该怎么解决。实际上之所以手动编辑 ntfs-3g,就是为了 ...

看错误提示,echo0说明系统也发现吞吐量不够,尝试优化,但是失败了。我是手动执行sync命令,写了个while循环,好像能好点。你创建VHD文件是用Windows系统自带的创建还是用其他磁盘工具创建?比如DiskGenius或Bootice之类的第三方软件?

点评

我一般使用windows系统自己创建固定大小vhd,初始化格式化为ntfs完毕,在ubuntu下再格式化为ext4. 感觉这样性能好些。 从来没有扩容过vhd。有时候需要扩容。是使用mksquashfs命令备份整个系统为squashfs文件, 再在  详情 回复 发表于 2021-6-3 15:33
回复

使用道具 举报

514#
发表于 2021-6-2 11:12:27 | 只看该作者
songjl1995 发表于 2021-6-1 11:42
是不是因为vhd在物理磁盘上不是连续文件的导致的。
我原来不是连续的,系统不跑什么放在那里就会卡死, ...

感谢,我也是固态sata的接口,看到你说不连续,第一反应是磁盘碎片整理,又突然想起固态好像不能这样整理。我一直在回想最近都改过什么东西,硬件没有改变,因为VHD容量不够,我就用系统创建VHD 150G,之前是80,50,16,10G,记忆中好像就出现过一次卡死,这回是开机十次九次卡死,之前也用第三方的DG和BOOTICE创建过,不知道是不是和软件创建有关系。
回复

使用道具 举报

515#
 楼主| 发表于 2021-6-3 15:33:07 | 只看该作者
piazini 发表于 2021-6-2 11:02
看错误提示,echo0说明系统也发现吞吐量不够,尝试优化,但是失败了。我是手动执行sync命令,写了个while ...

我一般使用windows系统自己创建固定大小vhd,初始化格式化为ntfs完毕,在ubuntu下再格式化为ext4. 感觉这样性能好些。
从来没有扩容过vhd。有时候需要扩容。是使用mksquashfs命令备份整个系统为squashfs文件,
再在旧系统或删除旧系统后直接启动到squashfs文件系统里使用rsync命令恢复到新vhd分区里,修改/etc/fstab文件里面的根分区的uuid即可。
回复

使用道具 举报

516#
发表于 2021-6-18 20:42:32 | 只看该作者
学习学习,感谢分享
回复

使用道具 举报

517#
发表于 2021-6-22 09:17:20 | 只看该作者
学习学习,搞了好久Deepin的VHD还是启动不了
回复

使用道具 举报

518#
发表于 2021-9-23 08:55:16 | 只看该作者
想学,可是不怎么看得懂
回复

使用道具 举报

519#
发表于 2021-11-3 23:07:09 | 只看该作者
grub4dos 菜单(grub4dos-0.4.6a-2021-08-13),uuid()这行失败。
这样改了成功:find --set-root --ignore-floppies --ignore-cd /path_to_vhd/ubuntu.vhd | uuid
回复

使用道具 举报

520#
发表于 2021-11-4 19:03:28 | 只看该作者
很牛的教程,支持一个,学习中
回复

使用道具 举报

521#
发表于 2021-11-4 19:04:36 | 只看该作者
很牛的教程,支持一个
回复

使用道具 举报

522#
发表于 2021-12-23 14:33:53 | 只看该作者
niumao大佬还在不忘初心的修改vhd版ubuntu啊。上个月下载了20.04版再公司电脑用正常,回家里电脑测试不行,进入initramfs。

点评

应该是时间久了不断升级,把以前修改的文件还原为原始版本了,主要是init local mkinitramfs这几个文件。需要重新编辑一下,重新制作一下initrd.img。  详情 回复 发表于 2021-12-23 19:28
回复

使用道具 举报

523#
 楼主| 发表于 2021-12-23 19:28:50 | 只看该作者
ql1307096 发表于 2021-12-23 14:33
niumao大佬还在不忘初心的修改vhd版ubuntu啊。上个月下载了20.04版再公司电脑用正常,回家里电脑测试不行, ...

应该是时间久了不断升级,把以前修改的文件还原为原始版本了,主要是init local mkinitramfs这几个文件。需要重新编辑一下,重新制作一下initrd.img。
回复

使用道具 举报

524#
发表于 2022-3-8 21:15:26 | 只看该作者
本帖最后由 piazini 于 2022-3-8 21:17 编辑


先感谢一下 2011niumaod 大佬多年的辛勤付出。
vhd文件设置为动态大小,会造成引导不成功。
留个脚印,方便大家排查问题。

-

回复

使用道具 举报

525#
发表于 2022-3-29 08:21:05 | 只看该作者
可以引导vhd的manjaro吗?

点评

这是基于ARCH的,也是可以的,只是把kpartx 改用 partx 命令。做法参考mydracut里面的arch目录。  详情 回复 发表于 2022-8-18 10:29
回复

使用道具 举报

526#
 楼主| 发表于 2022-8-18 10:06:49 | 只看该作者
本帖最后由 2011niumao 于 2022-8-18 10:12 编辑

这两天把ntfs-3g升级为2021版了,把grubsmall升级为2022版了,写了一个详细的 pdf 的新教程,

制作vhd的UBUNTU.pdf


简化了代码也简化了一些操作。
在虚拟机内可以直接复制粘贴 pdf 教程里的命令和代码,这样就对网友们友好多了。

有兴趣可以去第一楼所给百度云链接下载。

新的grubsmall的菜单针对的是,
vhd文件名为 ubt.vhd ,和两个引导文件 vmlinuz initrd.img 一起放在一个硬盘根分区下

如果你的部署与此不同,根据具体情况编辑grub2菜单来调整引导参数。
回复

使用道具 举报

527#
 楼主| 发表于 2022-8-18 10:29:03 | 只看该作者
rhinomax 发表于 2022-3-29 08:21
可以引导vhd的manjaro吗?

这是基于ARCH的,也是可以的,只是把kpartx 改用 partx 命令。做法参考mydracut里面的arch目录。
回复

使用道具 举报

528#
发表于 2022-8-18 15:27:08 | 只看该作者
niumao大佬厉害了。。。
回复

使用道具 举报

529#
 楼主| 发表于 2022-8-19 13:01:31 | 只看该作者
本帖最后由 2011niumao 于 2022-8-19 16:13 编辑



依照mydracut教程里制作的Fedora.vhd与Fedora.squashfs系统近一段时间总是启动不了,这两天查明了原因。
第一点,引导参数 root=UUID=XXXXXXXXXXXXXXX 不知什么原因导致内核不能识别。可以放弃使用自动探测UUID这一做法,编辑grub2菜单,把root参数改用vhd文件或squashfs文件所在分区的卷标(必须全英文)。
第二点,如果出现与UID 1000用户 有关的引导错误,在grub2的菜单linux语句的后面加入 selinux=0, 如下
  1. linux         /vmlinuz  root=LABEL=XXXX  kloop=/Fedora.vhd kroot=/dev/mapper/loop0p1 selinux=0
复制代码
回复

使用道具 举报

530#
发表于 2022-8-23 15:34:09 | 只看该作者
本帖最后由 piazini 于 2022-8-24 16:47 编辑

下图,图一:GRUB4DOS.PNG




下图,图二:try(hd0,0)ntfs5.PNG  



niumiao大佬:
有没有,遇到过装了GRUB4DOS,出现图二的Try这个画面,就又回到图一启动列表画面?

电脑型号:ThinkPad E430c    硬盘SSD-490
GRUB4Dos里面的文件,在另外一台电脑就可以引导(比图片里电脑还老 -_-!)

是因为这个电脑引导方式不同造成的?

-----------------------------------------------------------------------------
2022-08-24 更新:
问题解决了。

原因:是因为在其他分区根目录也发现了grldr.mbr,所以其他分区的mbr文件被加载了,导致启动不成功

解决方法:grldr.mbr改个其他名字,在BOOTICE里更新一下新的grldr.mbr名字就可以了。

经过:有问题看提示,发现图二显示(hd0,0)就是0号磁盘的第0号分区(电脑出厂时,创建保留分区或BOOT分区,隐藏分区),
奇怪,明明用BOOTICE设置的是第1号分区(就是C盘),用DiskGenius查看到第0号隐藏分区里,果然也有个grldr.mbr。
原来是别的分区根下也有grldr.mbr被优先加载了,导致C盘的grldr.mbr没加载上,系统启动时候回搜索磁盘所有根,
第一个发现的grldr.mbr就会被加载。

另:为了确认第0号分区里grldr.mbr和引导WIN7有没有关系,我在DiskGenius里修改了grldr.mbr文件名,重启系统,
(提前备好PE盘,防止系统不正常启动时候,修复用)。重启后发现又进入系统了,但是突然默认系统壁纸变黑色背景了
提示盗版系统,看到桌面的 “Win7激活工具” 这下明白了,这个grldr.mbr是给系统激活用的。
当然,最保险的做法还是只保留 一个 grldr.mbr 文件在根分区,来启动GRUB4DOS。

还有个疑问,BOOTICE在设置BCD时,设备类型,选了分区;启动磁盘和启动分区也指定了要寻找的磁盘,
按说,不会在去别的磁盘去找 grldr.mbr 文件。
但为什么指定了磁盘不生效呢? 还要去别的磁盘找 grldr.mbr 文件

点评

怀疑是不是不认识SSD的缘故。可以把引导和菜单都写在优盘上,也许可行。 我现在就是这样处理,对于电脑原来的引导基本不触动。所有引导放在优盘上。 优点是安全,不会破坏电脑自己的引导。缺点是每次需要单插一个  详情 回复 发表于 2022-8-23 21:01
回复

使用道具 举报

531#
发表于 2022-8-23 15:36:58 | 只看该作者
2011niumao 发表于 2022-8-18 10:06
这两天把ntfs-3g升级为2021版了,把grubsmall升级为2022版了,写了一个详细的 pdf 的新教程,

制作vhd的 ...

大佬厉害了
回复

使用道具 举报

532#
发表于 2022-8-23 15:37:40 | 只看该作者
2011niumao 发表于 2022-8-18 10:06
这两天把ntfs-3g升级为2021版了,把grubsmall升级为2022版了,写了一个详细的 pdf 的新教程,

制作vhd的 ...

pdf 的连接呢?

点评

第一楼原来的百度云共享就是  详情 回复 发表于 2022-8-23 20:57
回复

使用道具 举报

533#
 楼主| 发表于 2022-8-23 20:57:36 | 只看该作者

第一楼原来的百度云共享就是
回复

使用道具 举报

534#
 楼主| 发表于 2022-8-23 21:01:18 | 只看该作者
piazini 发表于 2022-8-23 15:34
下图,图一:GRUB4DOS.PNG

怀疑是不是不认识SSD的缘故。可以把引导和菜单都写在优盘上,也许可行。
我现在就是这样处理,对于电脑原来的引导基本不触动。所有引导放在优盘上。
优点是安全,不会破坏电脑自己的引导。缺点是每次需要单插一个引导优盘。
回复

使用道具 举报

535#
发表于 2022-8-24 16:11:16 | 只看该作者
2011niumao 发表于 2022-8-23 21:01
怀疑是不是不认识SSD的缘故。可以把引导和菜单都写在优盘上,也许可行。
我现在就是这样处理,对于电脑 ...

大佬你这U盘就是一个启动系统的钥匙了,没这U盘 ,系统都启动不了。  

我的问题也解决了,解决方法写到提问楼层了。

是因为其他分区根下也有grldr.mbr文件,被优先加载了。

谢谢,大佬的指点
回复

使用道具 举报

536#
 楼主| 发表于 2022-9-1 21:14:09 | 只看该作者
引导时候出现的Buffer I/O errors 有些是无害的可以忽略:
https://blog.csdn.net/weixin_343 ... tm_relevant_index=1
A server using a LUN, which is presented by a storage array through fabric channels, may show buffer I/O errors while the server is booting or commands such as fdisk and vgscan are being run. The access can be a read or write attempt. These messages are sometimes harmless. When using PowerPath, these errors are suppressed. However, in the case where Linux native multipathing is used, there is no automatic provision for filtering these messages.

The errors can occur when using an active/passive storage array, such as EMC Clarion series. These types of SANs contain two storage processors. LUNs are assigned to only one of the processors at the time of LUN creation. The LUN can receive I/O only via that one processor. The other processor is passive; it acts as a backup, ready to receive I/O if the active controller fails, or if all paths to the LUN via the active controller fails.

Paths to the LUN going via the passive controller are passive paths and will generate an I/O errors should I/O be sent over them. At bootup, the kernel's SCSI mid-layer scans all paths to find devices. Thus it will scan both active and passive paths and will generate buffer I/O errors for the passive paths.

This is a normal behavior for Linux native multipath, and the errors do not indicate an array issue. The errors can safely be filtered through the OS logging configuration or the user can avoid access to native devices (as opposed to using /dev/mapper devices). Alternatively, a qualified version of PowerPath may be installed, which will automatically filter these errors.
回复

使用道具 举报

537#
发表于 2022-9-13 11:25:20 | 只看该作者
楼主,我根据《制作vhd的UBUNTU.pdf》用ubuntu2204试了下没成功,这个新系统是本身就不行吗?

点评

新系统ubuntu 22.04也没有问题可以制作成功的。 你需要仔细检查制作过程,是不是都写对了。尤其是几个脚本的修改一定要核对。我曾经因为少了两个空格 导致莫名其妙的错误,花了两天时间才看出来的。 刚刚给百度  详情 回复 发表于 2022-9-13 12:12
回复

使用道具 举报

538#
 楼主| 发表于 2022-9-13 12:12:18 | 只看该作者
本帖最后由 2011niumao 于 2022-9-13 12:20 编辑
songjl1995 发表于 2022-9-13 11:25
楼主,我根据《制作vhd的UBUNTU.pdf》用ubuntu2204试了下没成功,这个新系统是本身就不行吗?

新系统ubuntu 22.04也没有问题可以制作成功的。你需要仔细检查制作过程,是不是都写对了。尤其是几个脚本的修改一定要核对。

刚刚给百度云盘(还是一楼那个链接)上传了我制作好的能引导固定vhd的内存初始镜像文件,你可以下载vmlinuz2204与 initrd.img2204后使用这两个文件引导看看。当然grub2的菜单需要自己修订一下。或者可以把两个文件名里的2204删除直接用原来菜单也行。

vmlinuz2004   initrd.img2004 具体的版本号是  5.15.0-46
vmlinuz2204   initrd.img2204 具体的版本号是  5.15.0-47

点评

用了大佬做的可以,我原先的Ubuntu20.04升级到22.04,自己做的重新查了边,把ntfs-3g的修改也加上了,目前可以了。 但是我自己重新做的ubuntu2204 vhd就不行,用您的也不行,是不是vhd在安装的时候出现逻辑分区了呀  详情 回复 发表于 2022-9-14 17:02
谢谢大佬,这么及时的回复我,我先用您这个试试,然后再检查看看。  详情 回复 发表于 2022-9-13 15:04
回复

使用道具 举报

539#
发表于 2022-9-13 15:04:48 | 只看该作者
2011niumao 发表于 2022-9-13 12:12
新系统ubuntu 22.04也没有问题可以制作成功的。你需要仔细检查制作过程,是不是都写对了。尤其是几个脚本 ...

谢谢大佬,这么及时的回复我,我先用您这个试试,然后再检查看看。
回复

使用道具 举报

540#
发表于 2022-9-13 22:19:49 | 只看该作者
这个教程很有研究价值啊,学习一下
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-23 22:47

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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