v2excoc 发表于 2017-11-6 16:16:47

楼主技术不错,赞一个先。

使用中发现两个小情况,一是楼上那些找不到uuid,最后只能用root=/dev/sdax启动的同学,换个新的grub4dos版本,就没问题啦。

还有一个是硬件兼容问题,在楼主度娘网盘里,下载最新UBT-small.vhd.7z的1.2G版本,安装了一个台式机,死活进不去,老是卡死在登录画面。而换一台机器,又能进,实在是很郁闷。(ps: 换回那个UBT-small.vhd.7z的500M版本,兼容性很好,几台机器试下来,正常运行完全OK)

v2excoc 发表于 2017-11-14 14:22:49

继续折腾中,用楼主发布的UBT-small版本,NV显卡驱动死活装不上。无奈只能升级内核,发现意外的简单。

1. 下载官方的deb新版内核包,安装。
2. 在VMWARE里重启VHD系统,进入虚拟机,这时候是新内核,按照楼主的方法生成一下新的initrd.img即可。
3. 覆盖掉老的initrd.img,完美进入新内核VHD系统,正常安装NV显卡驱动,完全无压力:)

v2excoc 发表于 2017-11-15 17:05:51

继续折腾中,试了一下最新版本的Ununtu17, 有楼主的initrd.img改版完美引导,新版本貌似不在乎用啥内核。方法如下:

1. 新建8G空的VHD,用VMware挂上,安装官方的ISO系统。
2. 把安装后的VHD扔到根目录下,配合楼主的两个改版内核文件,建立grub菜单,完美引导。

v2excoc 发表于 2017-11-20 11:39:32

VHD用了一段时间,挺好用。就是每次ctrl+alt+F1切换到别的tty,会提示io错误,也不知道会不会损坏镜像文件?

楼主有办法解决这问题吗??

2011niumao 发表于 2017-11-21 11:58:32

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

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

wdtx 发表于 2017-12-18 12:01:00

新版的17.04也能按这方法制作成功,希望高手能编写个自动生成可以引导VHD系统的initrd.img 的脚本,大大简化制作过程。{:1_186:}

Hongrongqi 发表于 2018-3-10 13:36:48

本帖最后由 Hongrongqi 于 2018-3-10 14:07 编辑

https://pan.baidu.com/s/1W672QMoDy5RzcjQzhT1Zcw

请问老师这是那里错了

2011niumao 发表于 2018-3-10 16:54:34

Hongrongqi 发表于 2018-3-10 13:36
https://pan.baidu.com/s/1W672QMoDy5RzcjQzhT1Zcw

请问老师这是那里错了

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

Hongrongqi 发表于 2018-3-10 23:57:55

2011niumao 发表于 2018-3-10 16:54
/dev/sda5 不存在。是不是分区没有写对?或者引导时候加入参数 rootdelay=90 看看。

我就分一个分区,/dev/sda5是什么的路径

2011niumao 发表于 2018-3-11 11:48:15

图片信息是,/dev/sda5挂载在root上,看来也许是引导信息不对。

Hongrongqi 发表于 2018-3-11 12:21:00

2011niumao 发表于 2018-3-11 11:48
图片信息是,/dev/sda5挂载在root上,看来也许是引导信息不对。

我改成sda1 显示挂载不dev/run或找不到

2011niumao 发表于 2018-3-11 23:04:41

那就不懂了。说一下你的分区情况和引导参数。难道是sda2,也许有个引导分区占据了sda1。

2011niumao 发表于 2018-3-11 23:06:23

现在都可以通过搜索来寻找根分区,并传递uuid给内核的。

Hongrongqi 发表于 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=$vhdfilekroot=/dev/mapper/loop0p1
        initrd        (lp0,1)/initrd.img
}
fi
分区就是vbox`默认分区

Hongrongqi 发表于 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小白不是很懂,您说的搜索根分区怎么做

Hongrongqi 发表于 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 { ...

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

2011niumao 发表于 2018-3-12 19:09:46

本帖最后由 2011niumao 于 2018-3-12 19:21 编辑

Hongrongqi 发表于 2018-3-12 00:35
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=$vhdfilekroot=/dev/mapper/loop0p1
      initrd      (lp0,1)/initrd.img

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

2011niumao 发表于 2018-3-12 19:20:48

本帖最后由 2011niumao 于 2018-3-12 19:27 编辑

Hongrongqi 发表于 2018-3-12 00:35
分区就是vbox默认分区
我不了解默认分区,我一般都手工分区,就一个根分区,也不分swap分区。这时候引导参数 kroot=/dev/mapper/loop0p1是对的。

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

Hongrongqi 发表于 2018-3-12 20:38:27

昨天晚上我按你安装https://www.ubuntukylin.com/ukylin/forum.php?mod=viewthread&tid=27525这个教程来做,分区也是sda1是EFi分区,2是根目录,3是交换分区。还是这个错误

Hongrongqi 发表于 2018-3-12 20:42:54

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

我是gpt分区没有逻辑分区

Hongrongqi 发表于 2018-3-12 20:52:37

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

是真实硬盘的标签吗?

2011niumao 发表于 2018-3-13 08:56:02

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

是的。

2011niumao 发表于 2018-3-13 14:20:53

虚拟硬盘根分区在第二个分区,如果是主分区,kroot=/dev/mapper/loop0p2 如果是逻辑分区,把p2改为p5 .

Hongrongqi 发表于 2018-3-13 18:28:49

2011niumao 发表于 2018-3-13 14:20
虚拟硬盘根分区在第二个分区,如果是主分区,kroot=/dev/mapper/loop0p2 如果是逻辑分区,把p2改为p5 .

我直接给它uuid都还是错误

Hongrongqi 发表于 2018-3-13 18:49:31

我真实硬盘有两块,都是gpt+EFI分区的。ubuntu.vhd放在disk1s2,就是第二块的第二分区的ubuntu文件夹里,虚拟硬盘里分了三分区,根目录在第二分区里。老师帮我看一下问题出在那儿。

2011niumao 发表于 2018-3-13 23:21:03

我看不出来。感觉是不是uuid失效了,有时候偶尔有这种错误报告。从分区看,不使用uuid可以用 root=/dev/sdb2 才对。

2011niumao 发表于 2018-3-14 11:51:58

另外也可能是第二块硬盘挂载不上。建议放到第一块硬盘上。

2011niumao 发表于 2018-3-14 16:41:08

还有一点,需要在虚拟机里把一个文件/etc/fstab

2011niumao 发表于 2018-3-14 16:42:44

还有一点,需要在虚拟机里把一个文件/etc/fstab里面内容,关于根分区的还有swap的,加#注释掉。

Hongrongqi 发表于 2018-3-14 18:35:55

我用vhd外面vmlinuz和initrd.ing就可以启动,用vhd根目录下就不行。还有老师opensuse42.3安装不了ntfs_3g好像root用户权限不够,我都用root用户登陆了,不能这个root用户连根目录下的文件都修改不了。
页: 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20
查看完整版本: 从 固定VHD与只读squashfs引导LINUX, UBUNTU ARCH Fedora Opensuse Mageia五种