无忧启动论坛

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

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

    [复制链接]
91#
 楼主| 发表于 2015-11-14 20:48:02 | 显示全部楼层
本帖最后由 2011niumao 于 2015-11-14 21:01 编辑
mac3000 发表于 2015-11-14 16:57
按3操作,出现:unknown filesystem type ntfs-3g

第三个方法是手工启动方法。这个信息说明 ntfs-3g 没有安装好或者没有被塞入到 initramfs 里面。
这样 sda2作为 ntfs分区是没有挂载成功,vhd文件就不能被识别,自然找不到根设备导致启动失败。
需要重新手工编译安装 ntfs-3g 并重新制作dracut.

从图片上看 那个根目录Mageia是/sysroot 不是叫/root .这样手工启动命令也改为以下
  1. mkdir /host
  2. mount -t ntfs-3g -o rw /dev/sda2 /host
  3. kpartx -av /host/mageia/mageia.vhd
  4. mount -t ext4 -o rw /dev/mapper/loop0p1 /sysroot
  5. systemctl switch-root /sysroot /sbin/init
复制代码


回复

使用道具 举报

92#
 楼主| 发表于 2015-11-15 13:42:15 | 显示全部楼层
mac3000 发表于 2015-11-14 16:57
按3操作,出现:

我检查了一下教程。发现在编译安装ntfs-3g那一段有个笔误。三个命令应该是
  1. ./configure
  2. make
  3. sudo make install
复制代码
原教程最后一句丢掉了 install,只写了 sudo make  。请注意改正。
因为没有install 就只是编译好了但没有安装。也许这个就是找不到 ntfs-3g 的原因。抱歉笔误。
回复

使用道具 举报

93#
 楼主| 发表于 2015-11-16 08:30:12 | 显示全部楼层
本帖最后由 2011niumao 于 2015-11-16 08:33 编辑
mac3000 发表于 2015-11-16 01:28
文件如下,楼主有空看看要安装哪些东西?

hose kernel module packages can be installed: dkms-fglrx fglrx-kernel-3.19.8-desktop-3.mga5
11月 16 07:01:53 localhost service_harddrake[561]: running: /bin/rpm -q --qf %{name}
                                                     radeon-firmware
11月 16 07:01:53 localhost service_harddrake[561]: running: /bin/rpm -q --qf %{name}
                                                     x11-driver-video-ati x11-driver-video-fglrx dkms-fglrx fglrx-kernel-3.19.8-desktop-3.mga5
11月 16 07:01:53 localhost service_harddrake[561]: running: /bin/rpm -q --qf %{name}
                                                     x11-driver-video-fglrx dkms-fglrx fglrx-kernel-3.19.8-desktop-3.mga5
11月 16 07:01:53 localhost service_harddrake[561]: installing packages x11-driver-video-fglrx dkms-fglrx fglrx-kernel-3.19.8-desktop-3.mga5
11月 16 07:01:54 localhost urpmi[634]: called with: --allow-medium-change --auto --no-verify-rpm --expect-install x11-driver-video-fglrx dkms-fglrx fglrx-kernel-3.19.8-desktop-3.mga5

第一句最后一句,install后面说明需要安装 x11-driver-video-fglrx dkms-fglrx fglrx-kernel-3.19.8-desktop-3.mga5
  1. sudo urpmi x11-driver-video-fglrx dkms-fglrx fglrx-kernel-3.19.8-desktop-3.mga5
复制代码

点评

安装后,进入系统登陆界面,但奇怪鼠标 键盘都无作用  详情 回复 发表于 2015-11-16 14:47
回复

使用道具 举报

94#
 楼主| 发表于 2015-11-16 08:53:29 | 显示全部楼层
mac3000 发表于 2015-11-16 00:26
笔误之前已注意

再次制作启动文件,涛声依旧

编译只要能通过,应该没有问题。看不出问题所在。很奇怪。
可以使用
  1. lsinitrd dracut-mageia-kloop
复制代码
查看其内容,看看是不是有ntfs-3g相关文件。
回复

使用道具 举报

95#
 楼主| 发表于 2015-11-16 09:02:45 | 显示全部楼层
  1. sudo dracut  -i /home/niumao/mydracut/10-vhdmount-kloop.sh /lib/dracut/hooks/pre-mount/10-vhdmount-kloop.sh  --no-hostonly  --install " blkid kpartx  partx ntfs-3g fusermount  mount.fuse mount.ntfs-3g vgscan vgchange lvm  "   --add-drivers  "fuse loop  dm-mod "  -o " plymouth btrfs crypt  cifs dmraid mdraid multipath fcoe fcoe-uefi iscsi nfs nbd"   /home/niumao/dracut-mageia-kloop  内核版本
复制代码

是不是由于vmlinuz dracut版本不一致导致不能挂载?经历过这种错误。不过提示是fuse找不到,启动失败。和你的提示不一样。可以使用上面命令,在最后加上内核版本。
( ls /lib/modules/ 里面的子目录名称).

点评

在最后加上内核版本,仍然无法启动。 下载楼主分享的文件 mageia-kloop.zip 4.1.12-desktop-1.mga5.zip 已成功启动,自己就不折腾了。  详情 回复 发表于 2015-11-20 19:24
回复

使用道具 举报

96#
 楼主| 发表于 2015-11-16 20:58:22 | 显示全部楼层
mac3000 发表于 2015-11-16 14:47
安装后,进入系统登陆界面,但奇怪鼠标 键盘都无作用

缺少驱动。到第一楼KLOOP链接下载4.1.12-desktop-1.mga5.zip。
以root身份解压到/lib/modules下面。

这个是和新近上传mageia内核统一版本的。

点评

下载 解压后,启动成功。 谢谢楼主。  详情 回复 发表于 2015-11-20 19:13
回复

使用道具 举报

97#
 楼主| 发表于 2015-11-20 19:07:15 | 显示全部楼层
mac3000 发表于 2015-11-16 14:47
安装后,进入系统登陆界面,但奇怪鼠标 键盘都无作用

也可以在kloop连接下载ubuntu的内核引导文件,用他们引导Mageia.
从以往的测试看,效果很好.
回复

使用道具 举报

98#
 楼主| 发表于 2015-11-23 18:55:18 | 显示全部楼层
本帖最后由 2011niumao 于 2015-11-23 18:56 编辑
mac3000 发表于 2015-11-23 16:33
网上看到
Ubuntu 是基于Debian 的
Kloop肯定也能启动Debian啦


谢谢反馈.应该不用单独写出教程.Debian Mint都可以参照UBUNTU教程制作.
centos可以参考Fedora制作.
Debian有人作过.centos我作过,也成功的.
回复

使用道具 举报

99#
 楼主| 发表于 2015-11-24 21:51:20 | 显示全部楼层
东风唯笑 发表于 2015-11-24 20:51
hi,使用kloop方法设置14.04没有问题,但是15.10有错误,如下:


1510我这里是成功的。只是修改local的方式需要修正一下。
请检查一下你的引导参数,是否会多一个空格什么的。

一楼KLOOP链接今天刚上传一个LIVE-UBUNTU 1510. 在KLOOP子目录ubuntu1510-LIVE里面。
可以从哪里下载我制作好的4.2.0-19版本的内核文件,使用它们引导看看。

如果引导成功,可以在 /run/initramfs/script子目录内看到local的内容。
回复

使用道具 举报

100#
 楼主| 发表于 2015-12-6 10:02:04 | 显示全部楼层
crown2kiss 发表于 2015-12-5 18:38
大神ubuntu是成功了,但是安装CentOS-7-x86_64-DVD-1503-01.iso这个系统,木有/lib/dracut/hooks/pre-mount ...

这个文件是自己制作dracut时候加入进去的阿.你需要把制作dracut命令的参数中的路径 /home/niumao/mydracut中的 niumao 更改为你自己的用户名.

点评

谢谢已经搞定centos7,单VHD文件就可以了,好厉害,不过ntfs文件不好挂载,特别是VHD所在分区  详情 回复 发表于 2015-12-7 10:18
回复

使用道具 举报

101#
 楼主| 发表于 2015-12-7 10:52:27 | 显示全部楼层
本帖最后由 2011niumao 于 2015-12-9 18:27 编辑
crown2kiss 发表于 2015-12-7 10:18
谢谢已经搞定centos7,单VHD文件就可以了,好厉害,不过ntfs文件不好挂载,特别是VHD所在分区


恭喜。那个vhd文件所在分区应该已经挂载在 /host 下面了。
如果没有/host,请手动建立一个.重启后可以看到其内是vhd所在分区.
回复

使用道具 举报

102#
 楼主| 发表于 2015-12-9 18:22:46 | 显示全部楼层
本帖最后由 2011niumao 于 2015-12-9 18:26 编辑
againshi 发表于 2015-12-9 11:18
我按照kloop中的ubuntu步骤安装
前面都没有什么问题。
最后启动的时候报错

错误是没有正确挂载根,还是把vhd文件所在分区当作根了.奇怪.

这里你的vhd采用了逻辑分区,一般不赞成使用逻辑分区,因为主分区可以分4个,够用的.也许是逻辑分区造成的挂载失败?
但是很久以前专门测试过,逻辑分区是可以的.还有可能是引导参数错误.

请检查你的引导参数kroot.应该是 kroot=/dev/mapper/loop0p5  ?  或者 kroot=/dev/mapper/loop0p1  看看是第五分区挂载根还是第一分区挂载根而定.
如果还不行,可以贴一下你的引导菜单.

点评

恩。我找到原因了。vhd的路径有空格。按照你原来的参数启动起来了。 但是进入login界面一输入密码就死机。但是在vbox中没有任何问题。因为已经进入桌面,我不知道该如何排错了。这种情况该怎么办。 ubuntu不黑屏就  详情 回复 发表于 2015-12-10 10:36
回复

使用道具 举报

103#
 楼主| 发表于 2015-12-10 10:42:56 | 显示全部楼层
againshi 发表于 2015-12-10 10:36
恩。我找到原因了。vhd的路径有空格。按照你原来的参数启动起来了。
但是进入login界面一输入密码就死机 ...

这个也不懂了。估计和显卡驱动有关,但是也只是猜测。
可以进入命令行界面的话,查看一下启动信息。
  1. journalctl -a -b > bootlog
复制代码

然后拿出来 bootlog 看看。或 删除 > 以后内容直接屏幕上看启动信息。
回复

使用道具 举报

104#
 楼主| 发表于 2015-12-28 19:43:27 | 显示全部楼层
againshi 发表于 2015-12-28 17:11
其他已经全部按照流程文档做了。但是就是启动报错,百度了查不出来exitcode=0x00000009是什么问题啊

这种错误也遇到过几次.大多是引导信息不对,找不到initrd.img文件引起的.也有是initrd.img制作不合适造成的.所以建议检查引导信息 initrd 那一行.或是重新制作 initrd.img .因为可能升级阿什么的会改动原先修改好的local文件.
回复

使用道具 举报

105#
 楼主| 发表于 2015-12-29 12:01:02 | 显示全部楼层
againshi 发表于 2015-12-29 08:34
一切都是按照你给的命令制作的,我换过好多版本ubuntu,总是报这个错,郁闷到崩溃了。

可以不自己制作。直接在第一楼下载个我制作好的ubuntu的两个文件,什么版本都可以。引导看看。
除了声音会是假输出,没有声音外一切都可以使用。
回复

使用道具 举报

106#
 楼主| 发表于 2015-12-31 16:39:41 | 显示全部楼层
本帖最后由 2011niumao 于 2015-12-31 20:37 编辑
jxdeng 发表于 2015-12-31 10:42
预祝LZ新年好!
我在定制EFI 启动盘时,使用了本坛的一个GRUB2 定制格式,我把您的ubuntu live 1510等VHD  ...


jxdeng好.元旦快乐.
感觉grub-mkimage.exe的 -p 参数是不是有些问题.不过这个是windows下制作grub2的命令.
-p参数是 --prefix的缩写. prefix据说是硬编码在grub2模块中的.所以应该按需要设定.

建议你把grub2目录放在根目录下面,不是efi目录下面,因为prefix的内容里面没有efi.

并且原来定制语句
  1. grub-mkimage.exe -d x86_64-efi  -p /Grub2/UEFI_x86_64-efi -o X86_64-EFI.EFI -O x86_64-efi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file
复制代码

中最好把-p 后面 更改为 /Grub2 ,如下
  1. grub-mkimage.exe -d x86_64-efi  -p /Grub2/ -o X86_64-EFI.EFI -O x86_64-efi part_gpt part_msdos disk fat exfat ext2 ntfs appleldr hfs iso9660 normal search_fs_file
复制代码

这样,它会自动寻找该目录下x86_64-efi子目录的模块.注意是小写.

如果依照原先设置 -p /Grub2/UEFI_x86_64-efi   那么需要在 /Grub2/UEFI_x86_64-efi目录下存在x86_64-efi子目录,模块应在其中才对.
所以prefix的设置很关键的.
回复

使用道具 举报

107#
 楼主| 发表于 2015-12-31 16:39:42 | 显示全部楼层
本帖最后由 2011niumao 于 2015-12-31 20:31 编辑

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
回复

使用道具 举报

108#
 楼主| 发表于 2015-12-31 16:39:42 | 显示全部楼层
本帖最后由 2011niumao 于 2015-12-31 20:31 编辑

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
回复

使用道具 举报

109#
 楼主| 发表于 2015-12-31 16:39:42 | 显示全部楼层

推荐一种grub2菜单写法

本帖最后由 2011niumao 于 2016-4-6 21:29 编辑

典型例子
  1. menuentry " UBUNTU-1604.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="/ubt/UBUNTU-1604.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 loop0 $vhdfile
  14.         linux        (loop0,1)/vmlinuz root=/dev/sda5 rw  kloop=$vhdfile  kroot=/dev/mapper/loop0p1
  15.         initrd        (loop0,1)/initrd.img
复制代码
优点
1)设置了变量vhdfile ,可以使得三处的vhd文件统一使用该变量代替,便于修改和移植。
以后只需要修改变量 vhdfile的值就可以了。

2)使用loopback命令,引导文件在vhd文件内。这样只需要一个固定vhd文件。不用再手工把引导文件复制出来。
但是这个方法只适用于grub2 ,不适用grub4dos(除非vhd文件连续存放或碎片不超过32)。

注意这里要求 修改定制的可以引导固定vhd的 initrd.img要直接替换掉原先的/boot/initrd.img-XXXX-generic.

3)正常情况下升级后不需要修改引导菜单了。也不需要复制vmlinuz——XXXXX-geneic   initrd.img-XXXXX-generic出来了,

评分

参与人数 1无忧币 +1 收起 理由
Srainbow + 1 汗~~误点成反对了,+1无忧币,报歉。

查看全部评分

回复

使用道具 举报

110#
 楼主| 发表于 2016-3-6 18:27:10 | 显示全部楼层
photor 发表于 2016-3-6 14:34
用第4步的方法编译安装的修改版ntfs-3g有问题,挂载ntfs分区会出错,必须重新用官方版本覆盖安装ntfs-3g ...

我这里好像没有问题。是1604.
回复

使用道具 举报

111#
 楼主| 发表于 2016-4-6 21:13:41 | 显示全部楼层
可能是菜单中还有错误路径信息。应该是没有挂载好根分区。注意看看菜单各个文件的路径。
另外有时候需要检查一下local文件。有时候升级后会把一些修改丢失了。
看看以下菜单
  1. menuentry " UBUNTU-1604.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="/ubt/UBUNTU-1604.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 loop0 $vhdfile
  14.         linux        (loop0,1)/vmlinuz root=/dev/sda5 rw  kloop=$vhdfile  kroot=/dev/mapper/loop0p1
  15.         initrd        (loop0,1)/initrd.img
  16. }
复制代码


可以修改标题 ,vhdfile的值为vhd文件的路径,loop0p1 (loop0,1)中的1表示第一个主分区,看你的vhd内分区酌情修改。

点评

我的是ubtkylin16.04内核4.4.0-22启动错误,做了好几次都不行,楼主能提供下启动文件吗?谢谢!!  详情 回复 发表于 2016-5-10 22:44
我的是ubtkylin16.04内核4.4.0-22启动错误,做了好几次都不行,楼主能提供下启动文件吗?谢谢!!  详情 回复 发表于 2016-5-10 22:44
我的是ubtkylin16.04内核4.4.0-22启动错误,做了好几次都不行,楼主能提供下启动文件吗?谢谢!!  详情 回复 发表于 2016-5-10 22:44
我的是ubtkylin16.04内核4.4.0-22启动错误,做了好几次都不行,楼主能提供下启动文件吗?谢谢!!  详情 回复 发表于 2016-5-10 22:44
我的是ubtkylin16.04内核4.4.0-22启动错误,做了好几次都不行,楼主能提供下启动文件吗?谢谢!!  详情 回复 发表于 2016-5-10 22:44
回复

使用道具 举报

112#
 楼主| 发表于 2016-5-11 10:18:48 | 显示全部楼层
wangziqiang 发表于 2016-5-10 22:45
我的是ubtkylin16.04内核4.4.0-22启动错误,做了好几次都不行,楼主能提供下启动文件吗?谢谢!!

已上传同版本的UBUNTU两个启动文件,到KLOOP共享目录内。请试用。

点评

谢谢楼主 十分感谢 我试试  详情 回复 发表于 2016-5-12 03:56
回复

使用道具 举报

113#
 楼主| 发表于 2016-5-13 13:08:25 | 显示全部楼层
wangziqiang 发表于 2016-5-13 10:43
什么情况啊 谢谢楼主

看样子,没有找到vhd所在的ntfs分区.以往有过这样情形,应该是UUID的参数没有起到作用.
这样需要修改引导信息中 linux 的参数 root=UUID=XXXXXXXXXXXXXXXXX 为

root=/dev/sdaX 或者 root=LABEL=XXXXX .

在grub2菜单按e键,进入编辑模式,修改完后按F10键引导. 其中 sdaX的X ,对于主分区是1234  对于逻辑分区,是5678等. LABEL=XXXXX的XXXXX是分区标签,不能有汉字.  
回复

使用道具 举报

114#
 楼主| 发表于 2016-5-13 13:08:28 | 显示全部楼层
wangziqiang 发表于 2016-5-13 10:43
什么情况啊 谢谢楼主

看样子,没有找到vhd所在的ntfs分区.以往有过这样情形,应该是UUID的参数没有起到作用.
这样需要修改引导信息中 linux 的参数 root=UUID=XXXXXXXXXXXXXXXXX 为

root=/dev/sdaX 或者 root=LABEL=XXXXX .

在grub2菜单按e键,进入编辑模式,修改完后按F10键引导. 其中 sdaX的X ,对于主分区是1234  对于逻辑分区,是5678等. LABEL=XXXXX的XXXXX是分区标签,不能有汉字.  
回复

使用道具 举报

115#
 楼主| 发表于 2016-5-13 13:08:36 | 显示全部楼层
wangziqiang 发表于 2016-5-13 10:43
什么情况啊 谢谢楼主

看样子,没有找到vhd所在的ntfs分区.以往有过这样情形,应该是UUID的参数没有起到作用.
这样需要修改引导信息中 linux 的参数 root=UUID=XXXXXXXXXXXXXXXXX 为

root=/dev/sdaX 或者 root=LABEL=XXXXX .

在grub2菜单按e键,进入编辑模式,修改完后按F10键引导. 其中 sdaX的X ,对于主分区是1234  对于逻辑分区,是5678等. LABEL=XXXXX的XXXXX是分区标签,不能有汉字.  

点评

谢谢楼主耐心帮助 完美解决  详情 回复 发表于 2016-5-14 06:23
回复

使用道具 举报

116#
 楼主| 发表于 2016-6-21 10:37:17 | 显示全部楼层
lgstd 发表于 2016-6-19 12:41
能不能实现不通过virtualbox安装ubuntu,而是直接安装到vhd中?

当然可以。先在Win系统下准备一个新的固定大小的vhd,分好分区,推荐只分一个分区。
接着如同普通硬盘安装,启动到ubuntu的安装iso系统中,在该系统中利用 kpartx -av 命令把vhd挂到loop设备上,一般是/dev/mapper/loop1p1 .
接下来正常按装,但选择设备时候选择loop设备挂载根。至于引导,可以不安装或者选择引导设备是 /dev/loop1. 如果有出错就选择不安装grub引导器。也不设置 swap 。
安装完成后写好引导。再下载(第一楼KLOOP链接)个已经制作好的可以引导固定vhd的引导文件,两个,是vmlinuz-版本号 initrd.img-版本号 。使用他们引导进入vhd系统就可以了。

进入VHD以后可以自己制作最新版本的可以引导固定vhd的内核初始镜像文件。
回复

使用道具 举报

117#
 楼主| 发表于 2016-6-21 10:37:23 | 显示全部楼层
lgstd 发表于 2016-6-19 12:41
能不能实现不通过virtualbox安装ubuntu,而是直接安装到vhd中?

当然可以。先在Win系统下准备一个新的固定大小的vhd,分好分区,推荐只分一个分区。
接着如同普通硬盘安装,启动到ubuntu的安装iso系统中,在该系统中利用 kpartx -av 命令把vhd挂到loop设备上,一般是/dev/mapper/loop1p1 .
接下来正常按装,但选择设备时候选择loop设备挂载根。至于引导,可以不安装或者选择引导设备是 /dev/loop1. 如果有出错就选择不安装grub引导器。也不设置 swap 。
安装完成后写好引导。再下载(第一楼KLOOP链接)个已经制作好的可以引导固定vhd的引导文件,两个,是vmlinuz-版本号 initrd.img-版本号 。使用他们引导进入vhd系统就可以了。

进入VHD以后可以自己制作最新版本的可以引导固定vhd的内核初始镜像文件。

点评

谢谢回复,我试试看!!!!!!  详情 回复 发表于 2016-6-21 14:33
谢谢回复,我试试看!!  详情 回复 发表于 2016-6-21 14:33
谢谢回复,我试试看  详情 回复 发表于 2016-6-21 14:33
谢谢回复,我试试看  详情 回复 发表于 2016-6-21 14:33
回复

使用道具 举报

118#
 楼主| 发表于 2016-8-26 21:24:38 | 显示全部楼层
本帖最后由 2011niumao 于 2016-8-26 21:26 编辑

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

点评

失效了  详情 回复 发表于 2016-11-14 12:24
回复

使用道具 举报

119#
 楼主| 发表于 2016-11-16 16:03:59 | 显示全部楼层
Srainbow 发表于 2016-11-16 13:40
@2011niumao,
使用ubuntu 16.04 制作的vhd

不会。目前看不影响使用,不用管它。
回复

使用道具 举报

120#
 楼主| 发表于 2017-1-16 11:57:51 | 显示全部楼层
aoqy 发表于 2017-1-16 08:01
大神,有没有可能支持android?

android与linux差别太大,应该做不到了。但是android有类似于ubuntu的live系统的做法,也不需要vhd吧。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-7 18:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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