无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 2011niumao
打印 上一主题 下一主题

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

    [复制链接]
151#
 楼主| 发表于 2017-11-6 14:56:24 | 显示全部楼层
wdtx 发表于 2017-11-1 15:47
请问安装好的VHD系统可以直接升级吗?升级后需不需要重新做initrd.img?谢谢。

可以升级。一般会自动生成新的initrd.img。但是最好能有一个备份,以防万一。
回复

使用道具 举报

152#
 楼主| 发表于 2017-11-21 11:58:32 | 显示全部楼层
v2excoc 发表于 2017-11-20 11:39
VHD用了一段时间,挺好用。就是每次ctrl+alt+F1切换到别的tty,会提示io错误,也不知道会不会损坏镜像文件 ...

还不会解决这种问题。不过不会损坏系统。
回复

使用道具 举报

153#
 楼主| 发表于 2018-3-10 16:54:34 | 显示全部楼层
Hongrongqi 发表于 2018-3-10 13:36
https://pan.baidu.com/s/1W672QMoDy5RzcjQzhT1Zcw

请问老师这是那里错了

/dev/sda5 不存在。是不是分区没有写对?或者引导时候加入参数 rootdelay=90 看看。

点评

我就分一个分区,/dev/sda5是什么的路径  详情 回复 发表于 2018-3-10 23:57
回复

使用道具 举报

154#
 楼主| 发表于 2018-3-11 11:48:15 来自手机 | 显示全部楼层
图片信息是,/dev/sda5挂载在root上,看来也许是引导信息不对。

点评

我改成sda1 显示挂载不dev/run或找不到  详情 回复 发表于 2018-3-11 12:21
回复

使用道具 举报

155#
 楼主| 发表于 2018-3-11 23:04:41 来自手机 | 显示全部楼层
那就不懂了。说一下你的分区情况和引导参数。难道是sda2,也许有个引导分区占据了sda1。
回复

使用道具 举报

156#
 楼主| 发表于 2018-3-11 23:06:23 来自手机 | 显示全部楼层
现在都可以通过搜索来寻找根分区,并传递uuid给内核的。

点评

if search --no-floppy -f /ubuntu/UBT-small.vhd; then menuentry "UBT-small.vhd " --class ubuntu { insmod gzio insmod part_msdos insmod part_gpt insmod ext2 insmod ntfs insmod probe set  详情 回复 发表于 2018-3-12 00:35
回复

使用道具 举报

157#
 楼主| 发表于 2018-3-12 19:09:46 | 显示全部楼层
本帖最后由 2011niumao 于 2018-3-12 19:21 编辑
Hongrongqi 发表于 2018-3-12 00:35[/url]
menuentry "UBT-small.vhd " --class ubuntu {
        insmod gzio
        insmod part_msdos
        insmod part_gpt
        insmod ext2
        insmod ntfs
        insmod probe
        set vhdfile="/ubuntu/UBT-small.vhd"
        set root=(hd0,1)
        search --no-floppy -f --set=aabbcc  $vhdfile
        set root=${aabbcc}
        probe -u --set=ddeeff ${aabbcc}
        loopback lp0 $vhdfile
        linux        (lp0,1)/vmlinuz root=UUID=${ddeeff}  kloop=$vhdfile  kroot=/dev/mapper/loop0p1
        initrd        (lp0,1)/initrd.img


这种菜单就是搜索根分区传递UUID 给内核了。所以按照这个菜单的话。/dev/sda5 不会出现的。很奇怪。
我也搞不懂。教程没有什么变化的。建议把root=UUID=${ddeeff}更改为
  1. root=/dev/disk/by-label/XXX
复制代码
试试。这里XXX是vhd文件所在硬盘分区的标签,应该只有英文,不能有汉语。

点评

是真实硬盘的标签吗?  详情 回复 发表于 2018-3-12 20:52
回复

使用道具 举报

158#
 楼主| 发表于 2018-3-12 19:20:48 | 显示全部楼层
本帖最后由 2011niumao 于 2018-3-12 19:27 编辑
Hongrongqi 发表于 2018-3-12 00:35[/url]
分区就是vbox默认分区

我不了解默认分区,我一般都手工分区,就一个根分区,也不分swap分区。这时候引导参数 kroot=/dev/mapper/loop0p1是对的。

对于默认分区,你需要在vbox中看看,到底根分区在第几个分区,相应的需要调整loop0p1为loop0p2 loop0p5等等。
有可能你的根分区在第一个逻辑分区上,,那么  kroot=/dev/mapper/loop0p5才对。

点评

我是gpt分区没有逻辑分区  详情 回复 发表于 2018-3-12 20:42
回复

使用道具 举报

159#
 楼主| 发表于 2018-3-13 08:56:02 | 显示全部楼层
Hongrongqi 发表于 2018-3-12 20:52
是真实硬盘的标签吗?

是的。
回复

使用道具 举报

160#
 楼主| 发表于 2018-3-13 14:20:53 来自手机 | 显示全部楼层
虚拟硬盘根分区在第二个分区,如果是主分区,kroot=/dev/mapper/loop0p2 如果是逻辑分区,把p2改为p5 .

点评

我直接给它uuid都还是错误  详情 回复 发表于 2018-3-13 18:28
回复

使用道具 举报

161#
 楼主| 发表于 2018-3-13 23:21:03 来自手机 | 显示全部楼层
我看不出来。感觉是不是uuid失效了,有时候偶尔有这种错误报告。从分区看,不使用uuid可以用 root=/dev/sdb2 才对。
回复

使用道具 举报

162#
 楼主| 发表于 2018-3-14 11:51:58 来自手机 | 显示全部楼层
另外也可能是第二块硬盘挂载不上。建议放到第一块硬盘上。
回复

使用道具 举报

163#
 楼主| 发表于 2018-3-14 16:41:08 来自手机 | 显示全部楼层
还有一点,需要在虚拟机里把一个文件/etc/fstab
回复

使用道具 举报

164#
 楼主| 发表于 2018-3-14 16:42:44 来自手机 | 显示全部楼层
还有一点,需要在虚拟机里把一个文件/etc/fstab里面内容,关于根分区的还有swap的,加#注释掉。
回复

使用道具 举报

165#
 楼主| 发表于 2018-3-14 21:39:50 | 显示全部楼层
Hongrongqi 发表于 2018-3-14 18:35
我用vhd外面vmlinuz和initrd.ing就可以启动,用vhd根目录下就不行。还有老师opensuse42.3安装不了ntfs_3g好 ...

能启动就好了。说明系统没有问题。可能vhd内部的initrd.img还没有制作好,需要重做。
至于opensuse编译的问题,要给与可执行权限才行。
  1. chmod a+x *
复制代码
回复

使用道具 举报

166#
 楼主| 发表于 2018-3-14 21:42:37 | 显示全部楼层
Hongrongqi 发表于 2018-3-14 18:35
我用vhd外面vmlinuz和initrd.ing就可以启动,用vhd根目录下就不行。还有老师opensuse42.3安装不了ntfs_3g好 ...

能启动就好。可能还需要重新制作vhd 内部的initrd.img。opensuse那个是权限问题。
给予可执行权限就可以了。在ntfs-3g内
  1. chmod a+x * -R
复制代码

点评

opensusec我用ubuntu的vmliuz和initrd.img引导也成功进去了,就是不知道会不会有什么错误  详情 回复 发表于 2018-3-15 01:45
回复

使用道具 举报

167#
 楼主| 发表于 2018-3-15 13:37:17 | 显示全部楼层
Hongrongqi 发表于 2018-3-15 01:45
opensusec我用ubuntu的vmliuz和initrd.img引导也成功进去了,就是不知道会不会有什么错误

有些驱动会找不到。比如声音会有问题。

点评

老师还有问题想让你给解一下,我在ubuntu.vhd中多分了两个分区,一个分区的标签足openelec,另一个足xbmc以前在实硬盘的引导代码是:menuentry "OpenELEC" { search --set=root --label SYSTEM --hint hd0,msdo  详情 回复 发表于 2018-3-15 23:21
好的,谢谢老师  详情 回复 发表于 2018-3-15 22:03
回复

使用道具 举报

168#
 楼主| 发表于 2018-3-16 13:10:10 来自手机 | 显示全部楼层
这个不清楚。而且恐怕引导不了vhd内部的系统。因为ubuntu是对initrd.img改造后有了引导vhd内部系统的功能,这里没有initrd语句,估计引导不了。
回复

使用道具 举报

169#
 楼主| 发表于 2018-12-1 11:21:36 | 显示全部楼层
ymzjsr 发表于 2018-11-30 20:41
启动过程中出现“failed to stat() (host)/.......vhd"然后加载mounting时找不到文件。就是用下载的vhd文件 ...

那有可能是启动菜单需要修改。有可能自动探测uuid功能失效。
在grub2菜单界面按e键,进入编辑界面,把root=uuid=xxxx更改为
root=/dev/sdaX,
X看你的vhd文件所在分区而定.主分区 12 34 扩展分区 5 6 7 8 。
按F10启动。
回复

使用道具 举报

170#
 楼主| 发表于 2019-2-20 17:41:16 来自手机 | 显示全部楼层
可能是精简系统中overlay模块被精简了,也可能是制作initrd时候没有把代码放进去。例如,需要修改mkinitcpio文件。不好说。
回复

使用道具 举报

171#
 楼主| 发表于 2019-2-20 17:42:40 来自手机 | 显示全部楼层
squashfs文件系统,ubuntu有一个casper机制专门用来引导这种系统。可以尝试一下这种。

点评

实在是小白,不想再跳去另一个坑了。。。粗略的查了下,casper貌似是挂在一个文件或分区,来实现的,第一,不想单独分区,否则就直接再U盘上分一区去安装ubuntu了,如果是用单一文件的话,貌似说是必须得保存在fat32  详情 回复 发表于 2019-2-21 11:00
回复

使用道具 举报

172#
 楼主| 发表于 2019-2-21 15:54:20 | 显示全部楼层
本帖最后由 2011niumao 于 2019-2-21 15:55 编辑
telanx 发表于 2019-2-21 11:00
实在是小白,不想再跳去另一个坑了。。。粗略的查了下,casper貌似是挂在一个文件或分区,来实现的,第一 ...


casper没有你说的这些限制的.大体程序是,在vhd系统中安装casper,然后重新制作initrd. 把initrd与vmlinuz拿出来, 重启即可.   

initrd ,vmlinuz,与 squashfs三个文件还是可以放在任意ntfs分区里面,但是有一个固定要求是,必须在分区下面的一个名叫casper目录以内.

所谓fat32分区放一个文件是用于保存一些系统改变,另外设置了一个文件保存系统更改,这个文件必须放在fat32格式分区上.如果不保存系统更改,不需要这一点.

我这里提供的squashfs文件引导机制,其实主要目标是对linux其他发行版给出的 ,顺便给出ubuntu的.因为其他发行版没有这个casper机制.  有了这里的引导机制后就可以做成squashfs系统放在移动硬盘或优盘里面带着走了.
回复

使用道具 举报

173#
 楼主| 发表于 2019-2-22 20:07:07 | 显示全部楼层
telanx 发表于 2019-2-21 16:52
谢谢楼主解惑。
这么看来,如果是用Ubuntu的话,那casper是最佳选择了。再double confirm一下,那个用来存 ...

remastersys做成的sualshfs的live CD,和楼主的制作squashfs的方法相比,能用吗?
各是各的方法,彼此不能通用.

如果想要这个文件来预防以后可能会需要改系统的话,可否放到EFI的Fat32分区里呢?
理论上可以的,但是实际上如果改变小,还可以.改变太多,文件会比较大,会超出EFI分区大小就不行了.
回复

使用道具 举报

174#
 楼主| 发表于 2019-3-22 19:26:47 | 显示全部楼层
本帖最后由 2011niumao 于 2019-3-22 19:30 编辑
Hongrongqi 发表于 2019-3-21 22:28
为什么ubunti16.4.6也没声音,伪输出,


伪输出可能是因为对应于内核版本的驱动文件没有安装。
看看/lib/modules/目录下有没有与当前内核版本对应的子目录。
如果没有需要安装一下。可以在新立的里面安装。或者命令安装。例如
把版本更换为自己当前内核的。
  1. sudo apt install linux-image-4.15.0-43-generic
复制代码

点评

有文件,还是不行  详情 回复 发表于 2019-3-22 21:14
回复

使用道具 举报

175#
 楼主| 发表于 2019-3-23 13:49:02 | 显示全部楼层
这个就不知道原因了。有可能vhd文件系统有错误,尝试在Virtualbox下做个磁盘检查,fsck
也许有效。
回复

使用道具 举报

176#
 楼主| 发表于 2019-5-25 22:13:36 | 显示全部楼层
763180872 发表于 2019-5-24 16:52
请问大大,deepin和debain,我应该选哪个kloop呀

使用ubuntu的就可以了

点评

不好意思,刚刚都没有给大神说声谢谢,光顾着问问题了  详情 回复 发表于 2019-5-27 10:24
kpartx-boot 这个工具安装不了,没啥关系么, 3-2 . 修改mkinitramfs文件 sudo cp /usr/sbin/mkinitramfs ~/mkinitramfs.backup sudo gedit /usr/sbin/mkinitramfs 找到# util-linux,原来其下只有一行copy_  详情 回复 发表于 2019-5-27 10:20
回复

使用道具 举报

177#
 楼主| 发表于 2019-5-28 12:22:10 | 显示全部楼层
本帖最后由 2011niumao 于 2019-5-28 12:24 编辑
763180872 发表于 2019-5-27 10:20
kpartx-boot 这个工具安装不了,没啥关系么,

3-2 . 修改mkinitramfs文件

只要有 kpartx 命令就可以了.你可以直接安装kpartx.不一定是kpartx-boot.
第二个,好像后来没有那一段了,你找一个合适的地方插入进去即可,参考一下附件.

mkinitramfs.zip

3.72 KB, 下载次数: 11, 下载积分: 无忧币 -2

点评

好的,非常感谢,晚点试试  详情 回复 发表于 2019-5-28 14:10
回复

使用道具 举报

178#
 楼主| 发表于 2019-6-7 21:07:53 | 显示全部楼层
指南针 发表于 2019-6-5 15:24
楼主,为啥没有centos的修改步骤?是不支持吗

支持的.只不过与其他版本差不多.就不单独列出了,
有兴趣可以模仿Fedora 做做看.都是一个命令搞定了.
回复

使用道具 举报

179#
 楼主| 发表于 2020-6-12 12:23:56 | 显示全部楼层
本帖最后由 2011niumao 于 2020-6-12 12:45 编辑
2011hjcjie 发表于 2020-6-11 23:13
楼主辛苦,今看到楼主更新内容我跟进尝鲜。
现请教用只读squashfs系统制作固定vhd的可写系统时引导设置时 ...

lp0,1表示第一个loop盘的第一个分区. gpt按照实际分区顺序写为(lp0,x)应该可以
根据我的测试,现在推荐把vmlinuz initrd.img拷贝到vhd文件外面,使用其引导.

这样做,第一兼顾grub4dos;
第二,兼顾安全启动, 这时候把grub2-efi放在fat32优盘上,把vmlinuz initrd.img也放在优盘上,
可以安全启动.  (能安全启动的grub2可以自己从ubuntu2004发行光盘里获得)

点评

固定VHD还是没有启动成功 引导代码如下 menuentry "ubt.vhd" --class ubuntu { insmod gzio insmod part_msdos insmod part_gpt insmod ext2 insmod ntfs insmod probe set vhdfile="/ubun  详情 回复 发表于 2020-6-12 18:26
回复

使用道具 举报

180#
 楼主| 发表于 2020-6-12 12:25:46 | 显示全部楼层
2011hjcjie 发表于 2020-6-11 23:13
楼主辛苦,今看到楼主更新内容我跟进尝鲜。
现请教用只读squashfs系统制作固定vhd的可写系统时引导设置时 ...
  1. loopback lp0 $vhdfile
  2. linux (lp0,1)/vmlinuz
复制代码
lp0来自于第一个命令loopback,你可以把lp0改为其他名字,前后一致就可以.
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-5 06:38

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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