无忧启动论坛

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

[发布] SQUASHFS系统UBUNTU20.04与18.04,VHD系统UBUNTU16.04(64位)

    [复制链接]
331#
 楼主| 发表于 2017-2-28 14:21:47 | 显示全部楼层
本帖最后由 2011niumao 于 2017-2-28 14:26 编辑
Isler 发表于 2017-2-28 13:18
好像错误还是一样的呢


这就搞不懂了。这两个文件我这里是好好的可以引导。另外感觉应该使用 root=UUID=%?%,kroot可以使用/dev/mapper/loop0p1 或 /dev/dm-0。
注意 vmlinuz initrd.img是同一个版本,不然ntfs分区会挂载失败。

点评

额,楼主我对不起你,我习惯性差分了下,一直没有成功,直接启动你的VHD不差分就成功了。。 不过希望楼主能研究出来怎么差分后使用!  详情 回复 发表于 2017-2-28 17:02
回复

使用道具 举报

332#
 楼主| 发表于 2017-3-5 14:50:10 | 显示全部楼层
本帖最后由 2011niumao 于 2017-3-5 17:12 编辑

使用overlay机制,可以从一个目录内引导linux,这个为多系统玩家提供了方便,不需要再为每个系统单独分区了。
具体使用参看一楼的第一个链接的mydracut-new.zip文件。

主要想法是,把系统所在子目录作为upperdir,同一分区的另一个空目录作为workdir,内存一个目录作为lowerdir,就可以
叠合成为一个overlay文件系统,再把它挂载在根上就可以了。
  1. 本版加入了一种新的引导模式,用来引导安装在一个目录以内的文件系统。(使用了overlay机制)
  2. 方法只有一步,就是制作能引导目录内linux系统的内存镜像盘initrd 或initramfs。
  3. 具体做法看各个子目录内的详细说明(就是KLOOP方法的第二步)。

  4. 引导菜单,引导时候需要root 与upperdir,workdir三个个参数,root的值是目录文件系统所在分区,
  5. upperdir的值是文件系统所在目录的带路径的名字。workdir应该是与upperdir在同一分区,同一层次的
  6. 另一个子目录(新建一个空目录或者使用现成的空目录即可)。(lowerdir是内存中的一个目录,不用处理)

  7. 例如,我在一个ext4分区内安装了一个linux系统,又在这个分区根目录下建立了两个目录,名字为UBT-small ,host。然后把一个安装好的UBUNTU系统复制到UBT-small目录内,host目录保持为空目录。引导菜单如下:

  8. grub4dos菜单:
  9. title 启动upperdir-UBUNTU
  10. find --set-root --ignore-floppies --ignore-cd  /UBT-small/vmlinuz
  11. uuid ()
  12. kernel /UBT-small/vmlinuz  root=UUID=%?% upperdir=/UBT-small  workdir=/host apparmor=0
  13. initrd  /UBT-small/initrd.img

  14. grub2菜单:
  15. menuentry "upperdir-UBUNTU " --class ubuntu  {
  16.         insmod gzio
  17.         insmod part_msdos
  18.         insmod part_gpt
  19.         insmod ext2
  20.         insmod ntfs
  21.         insmod probe
  22.         set root=(hd0,1)
  23.         search --no-floppy -f --set=aabbcc  /UBT-small/vmlinuz
  24.         set root=${aabbcc}
  25.         probe -u --set=ddeeff ${aabbcc}
  26.         linux        /UBT-small/vmlinuz  root=UUID=${ddeeff} upperdir=/UBT-small   workdir=/host apparmor=0
  27.         initrd        /UBT-small/initrd.img
  28. }
  29. 注释1:对于目录内的ubuntu系统,需要注意两点,第一,引导时候加入参数apparmor=0,这样网络
  30. 可以自动检测好链接好。第二,在更新内核时候会遇到grub错误,解决方法是彻底卸载grub包。只使用
  31. 其他系统的grub2或者grub4dos引导。对于其他linux版本,应该不需要这两点。
  32. 注释2:可以使用rsync命令把一个安装好的ubuntu系统同步复制到子目录UBT-samll下,复制完成
  33. 后应该修改/etc/fstab文件,注释掉root挂载那一行。
复制代码
回复

使用道具 举报

333#
 楼主| 发表于 2017-3-6 15:48:13 | 显示全部楼层
ge 发表于 2017-3-6 14:13
不懂呀!弄不了呀!

可以下载现成的vhd。或者自己用VirtualBox安装UBUNTU到固定vhd上,在第一楼连接下载现成的vmlinuuz initrd.img 使用它们引导你的vhd系统。如果你的vhd系统安装有相同版本的内核,则可以顺利使用。
回复

使用道具 举报

334#
 楼主| 发表于 2017-3-6 16:15:44 | 显示全部楼层
ge 发表于 2017-3-6 16:10
我就是做完VHD!又下载的那三个文件!修改了菜单!可是没有成功!是不是还是缺少文件?

按道理应该不缺了。但如果你原来vhd不能进入桌面。那么现在也不能进入桌面,是你的系统需要调整的。
你这里的不成功,有没有具体的出错信息可以照片贴出来以便分析。
回复

使用道具 举报

335#
 楼主| 发表于 2017-3-6 17:56:53 | 显示全部楼层
ge 发表于 2017-3-6 17:03
为毛上传两个图片用一个就出来两个!修改后都没有图片了怎么还是两个?

这个照片没有出错信息。不过猜测是那个%?%不对了。可以尝试修改menu.lst文件 kernel那一行的root值为
root=LABEL=XXXXX 或者 root=/dev/sdaX
XXXXX是vhd所在分区卷标,不能有汉字。sdaX是所在分区的序号。主分区依次排序为1 2 3 4 ,逻辑分区排序为5 6 7 8 等。
回复

使用道具 举报

336#
 楼主| 发表于 2017-3-6 18:10:30 | 显示全部楼层
本帖最后由 2011niumao 于 2017-3-6 18:14 编辑
ge 发表于 2017-3-6 17:03
为毛上传两个图片用一个就出来两个!修改后都没有图片了怎么还是两个?

或者,改用g2ldr模式。由grub4dos菜单选择g2ldr 。并修改grubpc.cfg的菜单如下
  1. menuentry "UBT-small.vhd " --class ubuntu {
  2.         insmod gzio
  3.         insmod part_msdos
  4.         insmod part_gpt
  5.         insmod ext2
  6.         insmod ntfs
  7.         insmod probe
  8.         set vhdfile="/ubuntu/UBT-small.vhd"
  9.         set root=(hd0,1)
  10.         search --no-floppy -f --set=aabbcc  $vhdfile
  11.         set root=${aabbcc}
  12.         probe -u --set=ddeeff ${aabbcc}
  13.         loopback lp0 $vhdfile
  14.         linux    /ubuntu/vmlinuz   root=UUID=${ddeeff}  kloop=$vhdfile  kroot=/dev/mapper/loop0p1
  15.         initrd      /ubuntu/initrd.img
  16. }
复制代码
如上修改linux后面为 /ubuntu/vmlinuz ,initrd后面为 /ubuntu/initrd.img即可。
回复

使用道具 举报

337#
 楼主| 发表于 2017-3-6 19:44:50 | 显示全部楼层
ge 发表于 2017-3-6 19:09
我对G2一点都不懂!也和G4差不多吗?

一样的格式。只是把grub4dos的kernel语句更改为linux语句。另外有一些细节差别。
回复

使用道具 举报

338#
 楼主| 发表于 2017-3-7 20:00:10 | 显示全部楼层
本帖最后由 2011niumao 于 2017-3-7 20:04 编辑
ge 发表于 2017-3-7 19:44
我的是双硬盘!又重新写一个G2的菜单到第二个硬盘!VHD在第一个硬盘的第二个分区!是不是我的菜单没有写 ...

可能是菜单问题,也可能是其他问题。我想你可以尝试直接指定分区,不用自动寻找。如果所在的第二个硬盘的第二个分区是主分区,grub4dos菜单应该是
  1. root (hd1,2)
  2. kernel  /vmlinuz root=/dev/sdb2
  3. initrd  /initrd.img
复制代码
如果所在分区是逻辑分区,应该改为 这个样子。
  1. root (hd1,4)
  2. kernel  /vmlinuz root=/dev/sdb5
  3. initrd  /initrd.img
复制代码
或着 root (hd1,5)。可以在菜单时候按c ,进入命令行,ls看看各个硬盘分区编号,手动输入以上命令,最后输入boot回车引导。
回复

使用道具 举报

339#
 楼主| 发表于 2017-3-8 10:34:41 | 显示全部楼层
ql1307096 发表于 2017-3-8 08:56
niumao您好,我使用您之前的方法,在vbox虚拟机上安装好linuxmint18.1,安装kpartx等等软件,修改local文件 ...

ntfs unknown operand 这个说明文件类型不对。可能你没有源码编译安装ntfs-3g。如果安装过了,可能local文件修改的有问题,需要再看看local文件。

ntfs分区没有挂载上,当然找不到vhd,也无法kpartx了。

点评

我重新制作了vhd,重新安装了系统,但是有个小问题:直接在grub2中启动系统的话,还是出错无法启动: [attachimg]342360[/attachimg] 但是我在grub2下按E键,在grub2菜单中按F10启动,启动成功了。 我用您  详情 回复 发表于 2017-3-8 14:10
回复

使用道具 举报

340#
 楼主| 发表于 2017-3-8 10:38:06 | 显示全部楼层
本帖最后由 2011niumao 于 2017-3-8 11:02 编辑
ge 发表于 2017-3-8 08:23
G2菜单是
menuentry "UBT-small.vhd " --class ubuntu {
        insmod gzio


已经到了initramfs界面的话,菜单就已经正确了。这里毛病是ntfs分区是只读挂载上的,造成启动失败。
需要检查磁盘分区,确保没有错误。在linux 那一句加入 rw  ,任意地方均可。也许可以。
回复

使用道具 举报

341#
 楼主| 发表于 2017-3-8 10:42:06 | 显示全部楼层
ql1307096 发表于 2017-3-8 08:58
在initramfs下尝试mount,发现没有/dev/mapper/loop0p2

你需要先挂载ntfs分区---以ntfs-3g类型---到host,再kpart。
没有mapper/loop0p1 可以看看/dev/dm-0。
回复

使用道具 举报

342#
 楼主| 发表于 2017-3-8 11:34:33 | 显示全部楼层
ge 发表于 2017-3-8 11:11
不明白!如果文件都有菜单没有错!其它的我就不知道了!

看看照片上,显示的是 那个vhd所在分区,被只读挂载了。
按理必须是可读写挂载。所以一是可能磁盘有错误,需要windows
下做个磁盘检查 ,修复错误。另一个举措是加上 rw 参数。
回复

使用道具 举报

343#
 楼主| 发表于 2017-3-8 15:24:52 | 显示全部楼层
ql1307096 发表于 2017-3-8 14:17
严格来说是在grub2菜单详情 里随便动几下键盘,比如随便在个地方按下回车键然后删除,就可以按F10启动, ...

哦。能启动说明没有逻辑上的错误。可能是时间上的问题。挂载ntfs分区到/host后,挂载过程尚未完成就开始kpartx操作了,这样就找不到vhd文件了。可以在local文件里面,kpartx -av那句的上面加上一句  sleep 3  来等待一会儿,再执行kpartx操作。
回复

使用道具 举报

344#
 楼主| 发表于 2017-3-8 15:34:01 | 显示全部楼层
ql1307096 发表于 2017-3-8 14:17
严格来说是在grub2菜单详情 里随便动几下键盘,比如随便在个地方按下回车键然后删除,就可以按F10启动, ...

另外,local文件中,除了加入由井号括住的一大段代码以外,
还要加入一句 if  then  和一句 fi  ,以便在kloop模式下跳过
原来的启动代码。请你核对一下是否有这个 if  fi。
回复

使用道具 举报

345#
 楼主| 发表于 2017-3-9 09:09:05 | 显示全部楼层
共恭喜成功。分辨率的问题没有遇到过。
可否尝试调节grub2参数看看。在grub2菜单加入一句
set  gfxpayload=keep
或者
insmod gfxterm
set gfxmode=auto
回复

使用道具 举报

346#
 楼主| 发表于 2017-3-10 13:58:00 | 显示全部楼层
Linzeal 发表于 2017-3-10 13:36
按照你的文件和步骤,已成功登录VHD版。第一次接触UBUNTU,请教2个问题:

1、我硬盘在Windows下,分为两 ...

1, D分区,就是vhd文件所在分区,挂载在/host目录下。看/host目录就是了。
2,没有用过小小输入法,你给的链接说明很详细了,按照说明一步一步即可。
回复

使用道具 举报

347#
 楼主| 发表于 2017-3-27 18:16:59 | 显示全部楼层
ql1307096 发表于 2017-3-27 16:47
请教niumao大大:ubuntu以livecd启动,如果加参数persistent 就能使用分区根目录下的casper-rw文件来保存更 ...

这个没有研究过。估计需要修改casper相关的脚本才能做到。
回复

使用道具 举报

348#
 楼主| 发表于 2017-4-2 20:57:36 | 显示全部楼层
sdec040721 发表于 2017-4-2 20:30
厉害, 膜拜, 请问一下, debian能实现吗?

debian应该没有问题。参考ubuntu---基于debian---的做法就是。
回复

使用道具 举报

349#
 楼主| 发表于 2017-4-2 21:04:57 | 显示全部楼层
sdec040721 发表于 2017-4-2 21:02
另外, 看您做了很多系统的vhd, 不知道是否方便搞个debian的vhd出来造福一下大众?

应该不会作了---因为没有什么挑战性了。 呵呵。
回复

使用道具 举报

350#
 楼主| 发表于 2017-5-9 10:50:34 | 显示全部楼层
本帖最后由 2011niumao 于 2017-5-9 10:51 编辑
2011hjcjie 发表于 2017-5-9 06:44
楼主帮忙看一下,通用启动器不能启动我的本地硬盘Ubuntu16.04。我的双硬盘ssd为第二块(机械硬盘第一块),我 ...


那需要重新复制vmlinuz initrd.img出来。注意复制的是/boot/vmlinuz-XXXX与 /boot/intrd.img-XXXXX 出来,改名字为vmlinuz initrd.img。
回复

使用道具 举报

351#
 楼主| 发表于 2017-5-10 07:40:09 | 显示全部楼层
2011hjcjie 发表于 2017-5-9 19:47
多谢楼主回复。
我刚才下了楼主3月2日百度盘共享的文件加到/efi/ubuntu文件夹还是同样的错误。
忘了说 ...

我没有efi启动的机子,所以没有测试过。一是需要关闭安全启动,二看看是不是64位,三是不是有专门用于
efi启动的内核版本,安装他们使用他们莱引导。
回复

使用道具 举报

352#
 楼主| 发表于 2017-5-10 17:24:27 | 显示全部楼层
本帖最后由 2011niumao 于 2017-5-10 17:26 编辑
2011hjcjie 发表于 2017-5-10 11:40
我的系统是64位的,我从安装盘拷了vmlinuz.lz和initrd.efi也不能启动……
安全启动也关闭了(我的电脑win10 ...


刚刚注意到你是硬盘系统。那么建议把菜单编辑一下,直接使用/boot/vmlinuz-版本号-generic /boot/initrd.img-版本号-generic引导看看。如果还是不行,就没方法了。

另外检查两个硬盘各个分区。避免有在某个其他分区还有/vmlinuz这种情形。

回复

使用道具 举报

353#
 楼主| 发表于 2017-5-24 10:52:51 | 显示全部楼层
本帖最后由 2011niumao 于 2017-5-24 21:29 编辑
2011hjcjie 发表于 2017-5-10 11:40
我的系统是64位的,我从安装盘拷了vmlinuz.lz和initrd.efi也不能启动……
安全启动也关闭了(我的电脑win10 ...


最近也遇到了类似现象,是说找不到文件/initrd.img不能启动。但是根目录下是有initrd.img这个文件的,它是一个软链接。
但是其链接目标是/boot/initrd.img-4.4.0-79-generic,使用的是绝对路径而不是相对路径,这是个缺陷。
后来重新制作软连接,把链接目标修改为相对路径后解决了。首先登陆到系统中(或者其他linux系统也可以,---把 cd / 修改为 cd 硬盘系统根目录的路径),在命令行里面,进入根目录,然后执行以下命令重新制作软连接
  1. cd /
  2. sudo ln -sf  boot/initrd.img-4.4.0-79-generic  ./initrd.img
  3. sudo ln -sf  boot/vmlinuz-4.4.0-79-generic ./vmlinuz
复制代码
重新启动后找到了文件。
回复

使用道具 举报

354#
 楼主| 发表于 2017-11-1 11:14:33 | 显示全部楼层
本帖最后由 2011niumao 于 2017-11-1 11:33 编辑
yueyeyr 发表于 2017-10-24 16:45
@2011niumao
实机 3块硬盘
hd0 ssd gpt 分1个esp启动和1个ntfs安装win10 (C:)


vhd文件所在分区实际上是已经挂载到 /host 目录了。可以去那里打开文件。
回复

使用道具 举报

355#
 楼主| 发表于 2018-9-2 20:05:14 | 显示全部楼层
影浅、云念 发表于 2018-8-30 23:09
Ubuntu18一直不成功,不知道会不会出一个vhd版的Ubuntu18呢?

不出了.如果不成功,可以说的详细一些.或者可以使用已经制作好的旧版本来引导,应该也可以进入系统.
回复

使用道具 举报

356#
 楼主| 发表于 2018-11-2 19:48:25 | 显示全部楼层
lhpxs 发表于 2018-10-31 15:19
请问能提供备份UBUNTU的UCLONER软件的下载链接吗

UCloner-10.10.2-beta1.zip (72.55 KB, 下载次数: 13)
这个软件和链接比较古老.找到一个我本地电脑存储的版本,上传了.

另外我没有在windows下加载过,加载上也不可能识别,因为是ext4格式.

应该是使用virtualbox直接在虚拟机中启动.或者按照说明,用grub2 grub4dos从电脑启动到VHD系统.


回复

使用道具 举报

357#
 楼主| 发表于 2018-11-4 21:05:08 | 显示全部楼层
本帖最后由 2011niumao 于 2018-11-4 21:10 编辑
lhpxs 发表于 2018-11-4 16:47
谢谢,我也从网上下载了这个软件了,但是有关第二个问题,下载后的VHD在WIN中打不开,我将自己安装后的UB ...


不知道你的解决目的指的是什么.
如果想让win使用该分区, 只能把这个分许重新格式化为ntfs, 当然分区的所有内容都被摧毁,
如果想使用该分区内ubuntu系统,可以尝试使用grub2 或者 grub4dos 引导到该系统,
建议准备一个优盘作引导盘, 方法是
在win下将优盘格式化为fat32.
下载第一楼的百度云的小grub启动器,解压到优盘上.
使用bootice 给优盘制作mbr(这一步有危险,一定要看清楚选择的盘是优盘而不是硬盘),
选择grub4dos ,0.46a ,并且 更改GRLDR 为G2LDR.
重启电脑后选择从优盘引导.

如果是没有格式化过分区或者制作过mbr的新手,最好能在虚拟机下练习几次或者找老手给指导一下.
回复

使用道具 举报

358#
 楼主| 发表于 2018-11-5 12:31:19 | 显示全部楼层
lhpxs 发表于 2018-11-5 11:19
请问有关上面的第5点,首先是无法成功启动到UBT-SMALL的ISO系统,第二是哪怕进入了UBUNTU系统,它能识别微 ...

ISO系统不能启动就算了。可以尝试启动到vhd虚拟磁盘内的ubuntu系统。
或者尝试启动到你的硬盘分区系统(就是ghost的目标分区)。

进入到ubunu系统以后,能识别微软分区的,fat32 ntfs,固定vhd虚拟磁盘 都可以识别。
回复

使用道具 举报

359#
 楼主| 发表于 2019-2-7 16:48:54 | 显示全部楼层
本帖最后由 2011niumao 于 2019-2-7 16:50 编辑
2011hjcjie 发表于 2019-2-7 15:43
系统升级后卡在 initfs 进不去。
怎么解决?
initrd及vmlinuz文件是否得更新?


第二个很慢不知道如何解决.
第一个, 应该是启动信息不对吧. 请检查一下启动菜单的各个参数,看看是不是需要调整.
或者是initrd没有制作好.重新制作一次看看
回复

使用道具 举报

360#
 楼主| 发表于 2020-3-2 15:15:44 来自手机 | 显示全部楼层
如果升级后出现关机问题 有可能是手工编译安装的ntfs-3g被覆盖了。重新编译安装ntfs-3g后再制作内核镜像看看。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-4 10:08

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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