无忧启动论坛

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

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

    [复制链接]
361#
发表于 2018-3-12 00:35:54 | 只看该作者
2011niumao 发表于 2018-3-11 23:06
现在都可以通过搜索来寻找根分区,并传递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 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
}
fi
分区就是vbox`默认分区

点评

看来很哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈行  详情 回复 发表于 2018-3-12 19:20
这种菜单就是搜索根分区传递UUID 给内核了。所以按照这个菜单的话。/dev/sda5 不会出现的。很奇怪。 我也搞不懂。教程没有什么变化的。建议把root=UUID=${ddeeff}更改为试试。这里XXX是vhd文件所在硬盘分区的标签,  详情 回复 发表于 2018-3-12 19:09
有没有新的教程,我从新一遍还是这个错误提示  详情 回复 发表于 2018-3-12 05:45
我是linux小白不是很懂,您说的搜索根分区怎么做  详情 回复 发表于 2018-3-12 00:39
回复

使用道具 举报

362#
发表于 2018-3-12 00:39:27 | 只看该作者
Hongrongqi 发表于 2018-3-12 00:35
if search --no-floppy -f  /ubuntu/UBT-small.vhd; then
menuentry "UBT-small.vhd " --class ubuntu { ...

我是linux小白不是很懂,您说的搜索根分区怎么做
回复

使用道具 举报

363#
发表于 2018-3-12 05:45:00 | 只看该作者
Hongrongqi 发表于 2018-3-12 00:35
if search --no-floppy -f  /ubuntu/UBT-small.vhd; then
menuentry "UBT-small.vhd " --class ubuntu { ...

有没有新的教程,我从新一遍还是这个错误提示
回复

使用道具 举报

364#
 楼主| 发表于 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
回复

使用道具 举报

365#
 楼主| 发表于 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
回复

使用道具 举报

366#
发表于 2018-3-12 20:38:27 | 只看该作者
昨天晚上我按你安装https://www.ubuntukylin.com/ukyl ... hread&tid=27525这个教程来做,分区也是sda1是EFi分区,2是根目录,3是交换分区。还是这个错误
回复

使用道具 举报

367#
发表于 2018-3-12 20:42:54 | 只看该作者
2011niumao 发表于 2018-3-12 19:20
我不了解默认分区,我一般都手工分区,就一个根分区,也不分swap分区。这时候引导参数 kroot=/dev/mapper ...

我是gpt分区没有逻辑分区
回复

使用道具 举报

368#
发表于 2018-3-12 20:52:37 | 只看该作者
2011niumao 发表于 2018-3-12 19:09
这种菜单就是搜索根分区传递UUID 给内核了。所以按照这个菜单的话。/dev/sda5 不会出现的。很奇怪。
...

是真实硬盘的标签吗?

点评

是的。  详情 回复 发表于 2018-3-13 08:56
回复

使用道具 举报

369#
 楼主| 发表于 2018-3-13 08:56:02 | 只看该作者
Hongrongqi 发表于 2018-3-12 20:52
是真实硬盘的标签吗?

是的。
回复

使用道具 举报

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

点评

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

使用道具 举报

371#
发表于 2018-3-13 18:28:49 来自手机 | 只看该作者
2011niumao 发表于 2018-3-13 14:20
虚拟硬盘根分区在第二个分区,如果是主分区,kroot=/dev/mapper/loop0p2 如果是逻辑分区,把p2改为p5 .

我直接给它uuid都还是错误

2018-03-13_18.26.52.jpg (81.86 KB, 下载次数: 145)

2018-03-13_18.26.52.jpg

IMG_20180313_182533.jpg (52.3 KB, 下载次数: 167)

IMG_20180313_182533.jpg
回复

使用道具 举报

372#
发表于 2018-3-13 18:49:31 | 只看该作者
我真实硬盘有两块,都是gpt+EFI分区的。ubuntu.vhd放在disk1s2,就是第二块的第二分区的ubuntu文件夹里,虚拟硬盘里分了三分区,根目录在第二分区里。老师帮我看一下问题出在那儿。
回复

使用道具 举报

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

使用道具 举报

374#
 楼主| 发表于 2018-3-14 11:51:58 来自手机 | 只看该作者
另外也可能是第二块硬盘挂载不上。建议放到第一块硬盘上。
回复

使用道具 举报

375#
 楼主| 发表于 2018-3-14 16:41:08 来自手机 | 只看该作者
还有一点,需要在虚拟机里把一个文件/etc/fstab
回复

使用道具 举报

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

使用道具 举报

377#
发表于 2018-3-14 18:35:55 | 只看该作者
我用vhd外面vmlinuz和initrd.ing就可以启动,用vhd根目录下就不行。还有老师opensuse42.3安装不了ntfs_3g好像root用户权限不够,我都用root用户登陆了,不能这个root用户连根目录下的文件都修改不了。

点评

能启动就好。可能还需要重新制作vhd 内部的initrd.img。opensuse那个是权限问题。 给予可执行权限就可以了。在ntfs-3g内  详情 回复 发表于 2018-3-14 21:42
能启动就好了。说明系统没有问题。可能vhd内部的initrd.img还没有制作好,需要重做。 至于opensuse编译的问题,要给与可执行权限才行。  详情 回复 发表于 2018-3-14 21:39
回复

使用道具 举报

378#
 楼主| 发表于 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 *
复制代码
回复

使用道具 举报

379#
 楼主| 发表于 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
复制代码
回复

使用道具 举报

380#
发表于 2018-3-15 01:45:32 | 只看该作者
2011niumao 发表于 2018-3-14 21:42
能启动就好。可能还需要重新制作vhd 内部的initrd.img。opensuse那个是权限问题。
给予可执行权限就可以 ...

opensusec我用ubuntu的vmliuz和initrd.img引导也成功进去了,就是不知道会不会有什么错误
回复

使用道具 举报

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

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

使用道具 举报

382#
发表于 2018-3-15 22:03:38 | 只看该作者
2011niumao 发表于 2018-3-15 13:37
有些驱动会找不到。比如声音会有问题。

好的,谢谢老师
回复

使用道具 举报

383#
发表于 2018-3-15 23:21:20 | 只看该作者
本帖最后由 Hongrongqi 于 2018-3-15 23:26 编辑
2011niumao 发表于 2018-3-15 13:37
有些驱动会找不到。比如声音会有问题。


老师还有问题想让你给解诀一下,我在ubuntu.vhd中多分了两个分区,一个分区的标签是OPENELEC,另一个是XBMC,以前在实硬盘的引导代码是:
menuentry "OpenELEC" {
    search --set=root --label SYSTEM --hint hd0,msdos3
    linux /KERNEL boot=LABEL=OPENELEC  disk=LABEL=XBMC quiet
}
menuentry "OpenELEC 高级选项" {
    search --set=root --label SYSTEM --hint hd0,msdos3
    linux /KERNEL boot=LABEL=OPENELEC disk=LABEL=XBMC debugging
}
现在在vhd中引导代码要怎么写
回复

使用道具 举报

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

使用道具 举报

385#
发表于 2018-5-10 22:22:58 | 只看该作者
学习一下,顺便mark下,以便参考
回复

使用道具 举报

386#
发表于 2018-5-24 09:41:03 | 只看该作者
本帖最后由 Srainbow 于 2018-5-24 11:53 编辑

试了下,

1.ubuntu18.04 vhd盘没有挂上。initramfs  启动到一半挂了,楼主有空看看?

我是在VirtualBox 直接默认安装后,加下补丁启动失败。


在hang住的initramfs看了下,   

没有/host 目录 原来的vhd文件所在分区还是挂在/root下

手动试了下mount -o move   执行没有问题。
试了kpartx -av /ubuntu/Bionic.vhd   
挂住,

猜测也许跟分区方式有关。回头再试试换换分区格式试试。
回复

使用道具 举报

387#
发表于 2018-5-24 13:03:23 | 只看该作者
Srainbow 发表于 2018-5-24 09:41
试了下,

1.ubuntu18.04 vhd盘没有挂上。initramfs  启动到一半挂了,楼主有空看看?

安装深度deepin15.5,先按本帖3楼的vloop方法不成功,也是启动到initramfs停住,

后按附件里的KLOOP方法安装成功。
回复

使用道具 举报

388#
发表于 2018-5-26 17:58:23 | 只看该作者
wdtx 发表于 2018-5-24 13:03
安装深度deepin15.5,先按本帖3楼的vloop方法不成功,也是启动到initramfs停住,

后按附件里的KLOOP方 ...

我用的就是kloop。deepin15.5 是基于debian的,ubuntu 18.04 还不是完全一样吧?
回复

使用道具 举报

389#
发表于 2018-6-1 12:21:29 | 只看该作者
Srainbow 发表于 2018-5-26 17:58
我用的就是kloop。deepin15.5 是基于debian的,ubuntu 18.04 还不是完全一样吧?

我也不太懂,但是做成功了
回复

使用道具 举报

390#
发表于 2018-6-29 12:59:20 | 只看该作者
按fedora方法制作redhat 7.5没成功,不知道有什么不同
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-18 05:40

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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