无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 193164|回复: 613

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

    [复制链接]
发表于 2014-9-2 09:53:22 | 显示全部楼层
本帖最后由 2011hjcjie 于 2014-9-2 09:56 编辑

新买笔记本,按以前台式机安装方法测试,启动失败(GPT)。
是否不支持 haswell平台的原因,(我新买的电脑CPU I7-4710mQ; 显卡 NVIDIA gtx880m)
---回复主题错误,请无视...
回复

使用道具 举报

发表于 2020-6-11 23:13:21 | 显示全部楼层
本帖最后由 2011hjcjie 于 2020-6-11 23:16 编辑

楼主辛苦,今看到楼主更新内容我跟进尝鲜。
现请教用只读squashfs系统制作固定vhd的可写系统时引导设置时的问题。
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
}

上面代码中(lp0,1)的1代表的时什么? gpt格式的话是GPT2吗?

点评

lp0来自于第一个命令loopback,你可以把lp0改为其他名字,两个一起改动就可以.  详情 回复 发表于 2020-6-12 12:25
lp0,1表示第一个loop盘的第一个分区. gpt按照实际分区顺序写为(lp0,x)应该可以 根据我的测试,现在推荐把vmlinuz initrd.img拷贝到vhd文件外面,使用其引导. 这样做,第一兼顾grub4dos; 第二,兼顾安全启动, 这时  详情 回复 发表于 2020-6-12 12:23
回复

使用道具 举报

发表于 2020-6-12 18:26:30 | 显示全部楼层
本帖最后由 2011hjcjie 于 2020-6-12 18:33 编辑
2011niumao 发表于 2020-6-12 12:23
lp0,1表示第一个loop盘的第一个分区. gpt按照实际分区顺序写为(lp0,x)应该可以
根据我的测试,现在推荐把 ...

固定VHD还是没有启动成功
引导代码如下,请赐教!
menuentry "ubt.vhd" --class ubuntu {
insmod gzio
insmod part_msdos
insmod part_gpt
insmod ext2
insmod ntfs
insmod probe
set vhdfile="/ubuntu/ubt.vhd"
set root=(hd1,gpt2)
search --no-floppy -f --set=aabbcc  $vhdfile
set root=${aabbcc}
probe -u --set=ddeeff ${aabbcc}
loopback lp0 $vhdfile
linux (lp0,1)/boot/vmlinuz root=UUID=${ddeeff}  kloop=$vhdfile  kroot=/dev/mapper/loop0p1
initrd (lp0,1)/boot/initrd.img
}

微信图片_20200612102259.jpg
批注 2020-06-12 103257.png

点评

还有一种情形,需要注意 就是先进入squashfs系统,在这个系统下修改vhd系统中的/etc/fstab文件,把它的根分区 / 那一行修改正确. 在制作squashfs文件系统时候,会注释掉 / 这一行,如下 这里的三个###是注释掉这一行的  详情 回复 发表于 2020-6-12 19:45
root参数也有可能不对. 有些场合下自动查询uuid,并传递给linux内核的做法会失效 (比如安全启动的场合. 查询uuid的模块不能加载) 此时只能直接给出明确的root参数值.比如好处理的,可以使用LABEL. 把那个Windows更  详情 回复 发表于 2020-6-12 19:27
kloop参数是不是应该改为 /dev/mapper/loop0p2 ? 还是 /dev/mapper/loop0p3? 可以在squashfs 文件系统里面,使用 kpartx -av VHD文件名 看出来根分区应该是第几个的. 如果windows下分区gpt磁盘可能有ms隐藏分区的  详情 回复 发表于 2020-6-12 19:18
回复

使用道具 举报

发表于 2020-6-12 20:14:51 | 显示全部楼层
本帖最后由 2011hjcjie 于 2020-6-12 21:24 编辑
2011niumao 发表于 2020-6-12 19:18
首先,grub2没有问题,唯一的问题可能是linux命令中的root ,kroot, kloop参数是否正确了

kroot参数是不 ...

kroot 参数应该没问题吧,参考附图---是p1
root参数应该也没问题,同样的位置squashfs能够正常启动


2020-06-12 20-11-18屏幕截图.png
回复

使用道具 举报

发表于 2020-6-12 20:39:56 | 显示全部楼层
本帖最后由 2011hjcjie 于 2020-6-12 21:03 编辑

2011niumao 发表于 2020-6-12 19:45
还有一种情形,需要注意
就是先进入squashfs系统,在这个系统下修改vhd系统中的/etc/fstab文件,把它的根分区 ...

loop8px 这个参数是什么意思?提示装入点不存在...  ###解决了,落掉了一个/

2020-06-12 20-39-33屏幕截图.png

回复

使用道具 举报

发表于 2020-6-12 21:09:22 | 显示全部楼层
本帖最后由 2011hjcjie 于 2020-6-13 09:21 编辑
2020-06-12 21-08-17屏幕截图.png 2020-06-12 21-04-52屏幕截图.png
那就说明 root kloop kroot 没有问题
那个 8(随便写的)---看你的kpartx -av的输出而定--你这里是 11 ---  ...

uuid那一行没注释掉,不过貌似id不正确
我改改试一下...



点评

哦,那肯定会影响启动. 改还好应该可以跑起来了.  详情 回复 发表于 2020-6-12 21:19
回复

使用道具 举报

发表于 2020-6-12 21:36:34 | 显示全部楼层
2011niumao 发表于 2020-6-12 21:19
哦,那肯定会影响启动. 改好就应该可以跑起来了.应该更改为10cc----cda3那一串.
sudo losetup -d

再次感谢楼主耐心解答!
已成功启动,固定vhd桌面更完美
squashfs桌面有点小问题...
回复

使用道具 举报

发表于 2020-6-14 22:43:00 | 显示全部楼层
本帖最后由 2011hjcjie 于 2020-6-14 22:45 编辑
2011niumao 发表于 2020-6-14 19:31
每改进改善一点儿则得意忘形奔走相告.

论坛有你更精彩!
有现成的案例有兴趣更深入了解linux命令了,多谢!
如可能再发个UOS版的

还有打印机驱动貌似无epson stylus photo r230, 有点可惜了

点评

基本上是原版的配置,没有改动。可以自己打造好自己喜欢的系统再制作成squashfs文件,随身携带了  详情 回复 发表于 2020-6-15 14:32
回复

使用道具 举报

发表于 2020-9-1 23:18:18 | 显示全部楼层
原来用下面引导成功进入桌面,不知是什么原因今天不能进入桌面;
menuentry "ubt.vhd" --class ubuntu {
        insmod gzio
        insmod part_msdos
        insmod part_gpt
        insmod ext2
        insmod ntfs
        insmod probe
        set vhdfile="/ubuntu/ubt.vhd"
        set root=(hd1,gpt2)
        search --no-floppy -f --set=aabbcc  $vhdfile
        set root=${aabbcc}
        probe -u --set=ddeeff ${aabbcc}
        loopback lp0 $vhdfile
        linux        (lp0,1)/boot/vmlinuz root=UUID=${ddeeff}  kloop=$vhdfile  kroot=/dev/mapper/loop0p1
        initrd        (lp0,1)/boot/initrd.img
}

改为如下引导,正常进入桌面
menuentry "ubt.vhd"  --class ubuntu  {
    recordfail
    insmod gzio
    insmod part_msdos
    insmod part_gpt
    insmod ext2
    insmod ntfs
    insmod probe
    insmod search
    search --no-floppy -f --set=aabbcc /ubuntu/ubt.vhd
    set root=${aabbcc}
    probe -u --set=ddeeff ${aabbcc}
    linux   /ubuntu/vmlinuz root=UUID=${ddeeff} kloop=/ubuntu/ubt.vhd kroot=/dev/mapper/loop0p1
    initrd  /ubuntu/initrd.img
}

1. 不知是什么原因,希望得到大神指导
2. 我用的是vbt.vhd 2004,  貌似没有配置无线网络。
   怎么配置,望赐教!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 02:22

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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