无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: 2011niumao
打印 上一主题 下一主题

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

    [复制链接]
271#
发表于 2017-2-23 11:46:56 | 只看该作者
本帖最后由 Askaa 于 2017-2-23 12:05 编辑

我按你的教程做了ARCH,可惜还是不成功
grub4DOs:

title ARCHGNU uuid-auto-probe
find --set-root --ignore-floppies --ignore-cd /VHD/VHD_Container_System_Archlinux.vhd
uuid ()
kernel  /VHD/vmlinuz-linux root=UUID=%?%  kloop=/VHD/VHD_Container_System_Archlinux.vhd kroot=/dev/loop0p1 rw
initrd  /VHD/initramfs-linux-vhd.img

我在虚拟机里做得

图1是直接用的arch.vhd中的升级成initramfs-linux-vhd.img
图2是我按你说的方法做的

刚才我发现的pacman -Q ntfs-3g是空的,表示没装上?

图片传重复了,不晓得咋删


*****
我又给虚机加了VHD的win10,mount上了可以读,表示ntfs-3g应该编译安装好了





VHD_Container_System_Archlinux-2017-02-23-11-57-03.png (26.99 KB, 下载次数: 207)

VHD_Container_System_Archlinux-2017-02-23-11-57-03.png

VHd-Container-System-2017-02-23-11-50-27.png (12.51 KB, 下载次数: 215)

VHd-Container-System-2017-02-23-11-50-27.png

VHd-Container-System-2017-02-23-11-46-35.png (8.72 KB, 下载次数: 220)

VHd-Container-System-2017-02-23-11-46-35.png

VHd-Container-System-2017-02-23-11-46-35.png (8.72 KB, 下载次数: 230)

VHd-Container-System-2017-02-23-11-46-35.png

点评

感觉是ntfs-3g已经安装好了。应该是init没有修改好吧,因为没有执行到kloop的代码那一段。请检查一下 init文件,重新修改一下再次制作initramfs看看。init的约第45行,应该如下 加入了一个 if fi 屏蔽掉通常情形  详情 回复 发表于 2017-2-23 13:32
回复

使用道具 举报

272#
 楼主| 发表于 2017-2-23 13:32:19 | 只看该作者
本帖最后由 2011niumao 于 2017-2-23 13:40 编辑
Askaa 发表于 2017-2-23 11:46
我按你的教程做了ARCH,可惜还是不成功
grub4DOs:


感觉是ntfs-3g已经安装好了。应该是init没有修改好吧,因为没有执行到kloop的代码那一段。请检查一下
init文件,重新修改一下再次制作initramfs看看。init的约第45行,应该如下
  1. rootdev=$(resolve_device "$root") && root=$rootdev
  2. unset rootdev

  3. if [ -z "$kloop" ] && [ -z "$squashfs" ]; then

  4.         fsck_root

  5.         # Mount root at /new_root
  6.         "$mount_handler" /new_root

  7. fi
复制代码
加入了一个 if fi 屏蔽掉通常情形的引导检查挂载根的代码。其下面是
  1.         ##############################################################
  2.         #                BOOT FROM VHD, KLOOP by niumao              #
  3.         ##############################################################

  4. if [ -n "$squashfs" ]; then

  5.     ### reset the value of the root variable
  6.     HOSTDEV="${root#block:}"
  7.     NEWROOT="/new_root"

  8.     ###  auto probe the fs-type of the partition in which vhd-file live and mount it  /host
  9.     mkdir -p /host
  10.     if [ -z "$hostfstype" ]; then
  11.         hostfstype="$(blkid -s TYPE -o value "${HOSTDEV}")"
  12.         [ -z "$hostfstype"  -o "${hostfstype}" = "ntfs" ] && hostfstype="ntfs-3g"
  13.     fi
  14.         [ "${hostfstype}" = "ntfs-3g" ] || modprobe ${hostfstype}
  15.     mount -t ${hostfstype} -o rw  ${HOSTDEV}  /host

  16.         ###try to boot from squashfs
  17.         mkdir /run/tmpwriteroot /run/tmpreadroot /run/tmpworkdir
  18.     mount /host$squashfs /run/tmpreadroot
  19.         mount -t overlay overlay -o lowerdir=/run/tmpreadroot,upperdir=/run/tmpwriteroot,workdir=/run/tmpworkdir $NEWROOT

  20.     ### mount /host in initrd to /host of the realrootfs
  21.     if [  "${hosthidden}" != "y" ] ; then
  22.         [ -d "${NEWROOT}"/host ] || mkdir -p ${NEWROOT}/host
  23.         mount --move /host   ${NEWROOT}/host
  24.     fi
  25. fi

  26. if [ -n "$kloop" ]; then

  27.     ### reset the value of the root variable
  28.     HOSTDEV="${root#block:}"
  29.     NEWROOT="/new_root"
  30.     [ -n "$kroot" ] && root="$kroot"
  31.     [ -n "$kroot" ] || root="/dev/loop0"
  32.     export root
  33.     realroot="$root"

  34.     ###  auto probe the fs-type of the partition in which vhd-file live and mount it  /host
  35.     mkdir -p /host
  36.     if [ -z "$hostfstype" ]; then
  37.         hostfstype="$(blkid -s TYPE -o value "${HOSTDEV}")"
  38.         [ -z "$hostfstype"  -o "${hostfstype}" = "ntfs" ] && hostfstype="ntfs-3g"
  39.     fi
  40.         [ "${hostfstype}" = "ntfs-3g" ] || modprobe ${hostfstype}
  41.     mount -t ${hostfstype} -o rw  ${HOSTDEV}  /host
  42.        
  43.     ### mount the vhd-file on a loop-device
  44.     if [ "${kloop#/}" !=  "${kloop}" ]; then              
  45.         modprobe  loop  
  46.         partx -av "/host${kloop}"
  47.         [ -e "$realroot" ] ||  sleep 3
  48.     fi

  49.     ### probe lvm on vhd-file
  50.     if [ -n "$klvm" ];  then
  51.         modprobe dm-mod
  52.         vgscan
  53.         vgchange  -ay  $klvm
  54.         [ -e "$realroot" ] ||  sleep 3
  55.     fi
  56.          
  57.     ### mount the realroot / in vhd-file on $NEWROOT
  58.     if [ -z "${kloopfstype}" ]; then
  59.         kloopfstype="$(blkid -s TYPE -o value "$realroot")"
  60.         [ -z "${kloopfstype}" ] && kloopfstype="ext4"
  61.     fi
  62.     [ -e "$realroot" ] ||  sleep 3
  63.     mount -t "${kloopfstype}" -o rw $realroot $NEWROOT
  64.        
  65.     ### mount /host in initrd to /host of the realrootfs
  66.     if [  "${hosthidden}" != "y" ] ; then
  67.         [ -d "${NEWROOT}"/host ] || mkdir -p ${NEWROOT}/host
  68.         mount --move /host   ${NEWROOT}/host
  69.     fi

  70. fi

  71.         ##############################################################
  72.         #            end, BOOT FROM VHD, KLOOP by niumao             #
  73.         ##############################################################
  74. run_hookfunctions 'run_latehook' 'late hook' $LATEHOOKS
  75. run_hookfunctions 'run_cleanuphook' 'cleanup hook' $CLEANUPHOOKS
复制代码

回复

使用道具 举报

273#
发表于 2017-2-23 17:01:41 | 只看该作者
情况依旧,我又做一遍,仔细用editplus打开init,左右窗口对比了看,都是一样的
能否拜托您做个arch.vhd,里面只有最简单的base就好,我拿来学习下
已经缠绕我一个礼拜了,不得解

点评

从头制作不必要。像这样引导固定vhd 引导只读squashfs的只依赖与initramfs一个文件。我上传一个制作好的,内核版本好象是 4.9.8-1 你可以适当改名字后使用他们引导。请到一楼第一个链接里面的archlinux子目录内下载.  详情 回复 发表于 2017-2-23 17:13
回复

使用道具 举报

274#
 楼主| 发表于 2017-2-23 17:13:50 | 只看该作者
Askaa 发表于 2017-2-23 17:01
情况依旧,我又做一遍,仔细用editplus打开init,左右窗口对比了看,都是一样的
能否拜托您做个arch.vhd, ...

从头制作不必要。像这样引导固定vhd 引导只读squashfs的只依赖与initramfs一个文件。我上传一个制作好的,内核版本好象是 4.9.8-1 你可以适当改名字后使用他们引导。请到一楼第一个链接里面的archlinux子目录内下载.
回复

使用道具 举报

275#
发表于 2017-2-24 11:36:18 | 只看该作者
本帖最后由 Askaa 于 2017-2-24 11:37 编辑
2011niumao 发表于 2017-2-23 17:13
从头制作不必要。像这样引导固定vhd 引导只读squashfs的只依赖与initramfs一个文件。我上传一个制作好的 ...


现在用了你的initramfs后我的ARCH-VHD可以动了,启动正常进入console,但是在虚拟机内无网卡,ip a 只能看见lo,进入xfce4会死机,我观察了下你做的initramfs,只有22m,比我的原始initramfs(30M)小了很多,大概是你精简过内核适应于你的硬件,可以分享下你编译arch的时的系统么?

点评

祝贺能启动了。我的系统安装了很多东西,已经24G大小了。呵呵。 进入图形界面死机可能是版本不一致的原因。建议还是自己系统上制作initramfs. 附上一个我这里的init.放在第一楼链接的archlinux目录内。建议你  详情 回复 发表于 2017-2-24 15:06
回复

使用道具 举报

276#
 楼主| 发表于 2017-2-24 15:06:59 | 只看该作者
Askaa 发表于 2017-2-24 11:36
现在用了你的initramfs后我的ARCH-VHD可以动了,启动正常进入console,但是在虚拟机内无网卡,ip a 只 ...


init.zip (1.76 KB, 下载次数: 4)

祝贺能启动了。我的系统安装了很多东西,已经24G大小了。呵呵。
进入图形界面死机可能是版本不一致的原因。建议还是自己系统上制作initramfs.
附上一个我这里的init.放在第一楼链接的archlinux目录内。建议你先把你系统的init文件备份移走,把这个init拷贝的正确位置,再制作initramfs,这样版本就一致了。
回复

使用道具 举报

277#
发表于 2017-3-6 13:00:24 | 只看该作者
本帖最后由 ge 于 2017-3-6 13:06 编辑

看不懂呀!
第一步,已经在虚拟机安装完成UBUNTU了!没有重启到桌面!
第二步,安装kpartx等软件是在虚拟机下安装吗?
其它需要什么文件?怎么修改!

点评

第一步你需要百度看看安装方面的教程。第二步,主要是两点,其一,编译安装ntfs-3g(源文件已经有了);其二,制作可以引导固定vhd的initrd.img,需要修改文件有四个,sudo gedit /usr/share/initramfs-tools/script  详情 回复 发表于 2017-3-6 15:57
回复

使用道具 举报

278#
 楼主| 发表于 2017-3-6 15:57:56 | 只看该作者
ge 发表于 2017-3-6 13:00
看不懂呀!
第一步,已经在虚拟机安装完成UBUNTU了!没有重启到桌面!
第二步,安装kpartx等软件是在虚拟 ...

第一步你需要百度看看安装方面的教程。第二步,主要是两点,其一,编译安装ntfs-3g(源文件已经有了);其二,制作可以引导固定vhd的initrd.img,需要修改文件有四个,sudo gedit /usr/share/initramfs-tools/scripts/local /usr/sbin/mkinitramfs /etc/initramfs-tools/modules /usr/share/initramfs-tools/scripts/local-bottom/ntfs_3g 。如何修改行看说明。
回复

使用道具 举报

279#
发表于 2017-3-6 16:04:59 | 只看该作者
做一个简单点的批处理就好了!真的看不明白!

点评

好主意。只是目前还不会写,学习中。  发表于 2017-3-6 18:01
回复

使用道具 举报

280#
发表于 2017-4-14 16:18:08 | 只看该作者
本帖最后由 jxdeng2017 于 2017-4-14 16:28 编辑

LZ好,好久没有跟您学习了。最近单位在用中标麒麟的LINUX 服务器系统,我弄了一个桌面版,易用性挺好,于是想借助您的方法,做成VHD。按照Fedora  kloop 的步骤  一点也没报错, 引导菜单也没问题,启动时,在找USB 3.0 时 死循环了。无法进到系统 (命令行也不行!),不知是何原因?  用您已做好的Fedora kloop   的 vmlinuz和dracut-fedora-kloop  也不行, 直接到命令行界面, VHD 文件已mount 上了.......。看来只有大神来解决了。
中标麒麟桌面版:https://pan.baidu.com/s/1i4Xcf69
回复

使用道具 举报

281#
发表于 2017-4-14 16:18:58 | 只看该作者
本帖最后由 jxdeng2017 于 2017-4-14 16:24 编辑

LZ好,好久没有跟您学习了。最近单位在用中标麒麟的LINUX 服务器系统,我弄了一个桌面版,易用性挺好,于是想借助您的方法,做成VHD。按照Fedora  kloop 的步骤  一点也没报错, 引导菜单也没问题,启动时,在找USB 3.0 时 死循环了。无法进到系统 (命令行也不行!),不知是何原因?  看来只有大神来解决了。

Neokylin2.jpg (123.25 KB, 下载次数: 239)

Neokylin2.jpg

Neokylin1.jpg (121.46 KB, 下载次数: 213)

Neokylin1.jpg

点评

看不出错误信息,不知道出错的原因。怀疑是那个 10-vhdmount-kloop.sh没有装入到内核初始盘里面。 需要再检查一下制作 dracut的过程或命令。试试以下命令  详情 回复 发表于 2017-4-15 13:33
回复

使用道具 举报

282#
 楼主| 发表于 2017-4-15 13:33:45 | 只看该作者
本帖最后由 2011niumao 于 2017-4-15 13:35 编辑
jxdeng2017 发表于 2017-4-14 16:18
LZ好,好久没有跟您学习了。最近单位在用中标麒麟的LINUX 服务器系统,我弄了一个桌面版,易用性挺好,于是 ...


看不出错误信息,不知道出错的原因。怀疑是那个 10-vhdmount-kloop.sh没有装入到内核初始盘里面。
需要再检查一下制作 dracut的过程或命令。试试以下命令
  1. sudo dracut  --include /home/niumao/mydracut/10-vhdmount-kloop.sh /lib/dracut/hooks/pre-mount/10-vhdmount-kloop.sh  --no-hostonly  --install " vi /etc/virc ps grep cat rm blkid losetup  kpartx partx mount.fuse mount.ntfs-3g ntfs-3g shutdown  lvm  vgchange  vgmknodes  vgscan  dmsetup dmeventd  "   --add-drivers  "fuse dm-mod "  -o " plymouth btrfs crypt  cifs fcoe fcoe-uefi iscsi nfs nbd"  /home/niumao/dracut-fedora-kloop
复制代码

把两个 niumao改为你的用户名,mydracut目录放在主目录里面。(主要是 -i 改用 --include  这个是新版本opensuse要求的)。
回复

使用道具 举报

283#
发表于 2017-4-17 09:16:45 | 只看该作者
谢谢LZ的指点,重新按LZ的提示做了一次,新生成的dracut-neokylin-kloop 文件略小了一点,替换后,仍然报错,卡死在同样的地方。但是有一个问题,Neokylin Linux 在 /lib/dracut/ 下 没有 hooks 目录。 不知是否要手动建 hooks/pro-mount 目录? 我把两次生成的LOG发上来,请大神指点迷津。

dracut.zip

5.52 KB, 下载次数: 1, 下载积分: 无忧币 -2

点评

看来原因就是10-vhdmount-kloop.sh那个文件没有塞入到dracut里了。 把目标路径加上/usr看看,尝试以下代码。  详情 回复 发表于 2017-4-17 12:29
回复

使用道具 举报

284#
 楼主| 发表于 2017-4-17 12:29:57 | 只看该作者
jxdeng2017 发表于 2017-4-17 09:16
谢谢LZ的指点,重新按LZ的提示做了一次,新生成的dracut-neokylin-kloop 文件略小了一点,替换后,仍然报错 ...

看来原因就是10-vhdmount-kloop.sh那个文件没有塞入到dracut里了。
把目标路径加上/usr看看,尝试以下代码。
  1. /usr/bin/dracut --include /home/jxdeng/mydracut/10-vhdmount-kloop.sh    /usr/lib/dracut/hooks/pre-mount/10-vhdmount-kloop.sh --no-hostonly --install " vi /etc/virc ps grep cat rm blkid losetup  kpartx partx mount.fuse mount.ntfs-3g ntfs-3g shutdown  lvm  vgchange  vgmknodes  vgscan  dmsetup dmeventd  " --add-drivers "fuse dm-mod " -o " plymouth btrfs crypt  cifs fcoe fcoe-uefi iscsi nfs nbd" /home/jxdeng/dracut-neokylin-kloop
复制代码
回复

使用道具 举报

285#
发表于 2017-4-17 13:05:16 | 只看该作者
本帖最后由 jxdeng2017 于 2017-4-17 13:08 编辑

LZ, 各种linux 对dracut有差异,Neokylin  确实定义了 /usr/lib/dracut/hooks 目录,但是在hooks 下没有 pre-mount 目录,手工建一个pre-mount 后,使用您的那个大命令行,10-vhdmount-kloop.sh 插不到该目录下,不知何故?  可以手工先拷贝到该位置吗?( /usr/lib/dracut/hooks/pre-mount)

点评

我感觉是可以的。可以尝试看看。 不过注意这里的/usr/lib/dracut/hook指的是在dracut里面的路径。 猜测是dracut命令的脚本会把实际系统的/usr/lib/dracut/hook下面的文件拷贝到dracut里面的同名处。这样你 预先拷  详情 回复 发表于 2017-4-17 15:05
回复

使用道具 举报

286#
 楼主| 发表于 2017-4-17 15:05:37 | 只看该作者
jxdeng2017 发表于 2017-4-17 13:05
LZ, 各种linux 对dracut有差异,Neokylin  确实定义了 /usr/lib/dracut/hooks 目录,但是在hooks 下没有 pr ...

我感觉是可以的。可以尝试看看。
不过注意这里的/usr/lib/dracut/hook指的是在dracut里面的路径。
猜测是dracut命令的脚本会把实际系统的/usr/lib/dracut/hook下面的文件拷贝到dracut里面的同名处。这样你
预先拷贝进去的文件,就可以塞到dracut里面了。
在dracut里面,也许有lib目录,也许lib只是到/usr/lib的软连接。
回复

使用道具 举报

287#
发表于 2017-4-17 19:01:02 | 只看该作者
本帖最后由 jxdeng2017 于 2017-4-17 19:02 编辑

报告LZ, 按上面的提示,重新生成dracut-neokylin 后,没有进步,仍然 报同样的 USB 3.0 的问题,检查了一下, 系统已经进到命令行,只是屏幕上报 无法加载 USB 3.0 。 检查了dracut.log ,没有发现生成内核时出什么问题。下午又拿一个Mageia Linux 5.1  测试了一下,系统能完全启动到命令行,也报无法加载USB 3.0 同样的错,用您的内核 和我自己定制的内核都一样。看来 是否跟机器硬件有关,我的设备是Thinkpad S3 ,带触摸屏的。
但是,UbuntuKylin 没有任何问题,完美启动到图形界面。 下一步怎么搞,没有了方向,请大神指点。

点评

如果是硬件问题,我也不会的。奇怪。  详情 回复 发表于 2017-4-17 21:17
如果是硬件问题,我也不会的。奇怪。  详情 回复 发表于 2017-4-17 21:17
回复

使用道具 举报

288#
 楼主| 发表于 2017-4-17 21:17:32 | 只看该作者
jxdeng2017 发表于 2017-4-17 19:01
报告LZ, 按上面的提示,重新生成dracut-neokylin 后,没有进步,仍然 报同样的 USB 3.0 的问题,检查了一下 ...

如果是硬件问题,我也不会的。奇怪。
回复

使用道具 举报

289#
 楼主| 发表于 2017-4-17 21:17:32 | 只看该作者
本帖最后由 2011niumao 于 2017-4-18 20:18 编辑
jxdeng2017 发表于 2017-4-17 19:01
报告LZ, 按上面的提示,重新生成dracut-neokylin 后,没有进步,仍然 报同样的 USB 3.0 的问题,检查了一下 ...

下载了你帖子里面的链接。制作好后发现之所以失败,是因为Neokylin系统启动时候没有自动生成/dev/loop0到/dev/loop7.
需要在10-vhdmount-kloop.sh里面,kpartx命令上面加入一个命令
  1. mknod /dev/loop0 b 7 0
  2. mknod /dev/loop1 b 7 1
复制代码
手工创建/dev/loop0 /dev/loop1(为保险多创建一个,也可以创建上8个)。然后重新制作dracut就成功引导了。
在一楼链接上传了两个文件,vmlinuz-neok  initrd.img-neok,你可以直接下载使用它们引导。

点评

我已经制作成功了。用附件替换掉10-vhdmount-kloop.sh。重新制作dracut后成功。 记住把两个niumao更改为用户名。  详情 回复 发表于 2017-4-18 19:32
回复

使用道具 举报

290#
 楼主| 发表于 2017-4-18 19:32:57 | 只看该作者
本帖最后由 2011niumao 于 2017-4-18 20:18 编辑
2011niumao 发表于 2017-4-17 21:17
如果是硬件问题,我也不会的。奇怪。

我已经制作成功了。用附件替换掉10-vhdmount-kloop.sh。重新制作dracut后成功。
  1. /usr/bin/dracut --include /home/jxdeng/mydracut/10-vhdmount-kloop.sh  /lib/dracut/hooks/pre-mount/10-vhdmount-kloop.sh --no-hostonly --install " vi /etc/virc ps grep cat rm blkid losetup  kpartx partx mount.fuse mount.ntfs-3g ntfs-3g shutdown  lvm  vgchange  vgmknodes  vgscan  dmsetup dmeventd  " --add-drivers "fuse dm-mod " -o " plymouth btrfs crypt  cifs fcoe fcoe-uefi iscsi nfs nbd" /home/jxdeng/dracut-neokylin-kloop
复制代码

记住把两个niumao更改为用户名。

10-vhdmount-kloop.sh.zip

1.04 KB, 下载次数: 3, 下载积分: 无忧币 -2

Neokylin

回复

使用道具 举报

291#
发表于 2017-4-19 13:25:32 | 只看该作者
本帖最后由 jxdeng2017 于 2017-4-19 13:55 编辑

感谢LZ指点, 按您的新脚本,我试了一下,跟以前没有什么区别,倒是让我发现了问题, /host  已经mount上,但是 kpartx -av /host$kloop  不行,报不能 mount loop 等.... 我核对了一下 引导参数 kroot  和分区发现了问题, 我的 kroot=/dev/mapper/loop0p1  , 但是 我的分区是 、/dev/sda1  是一个EFI分区,/dev/sda2 是swap,/dev/sda3 才是 根 / 分区。 但是 我改 kroot=/dev/mapper/loop0p3 也一样报错。 哪里错了,请指点。
引导串:
================
menuentry  " NeoKylin Linux 16.04 (VHD) 2 "   --class neokylin --class fedora  {
        recordfail
        insmod gzio
        insmod part_msdos
        insmod part_gpt
        insmod ext2
        insmod ntfs
        insmod probe
        insmod search
        search --no-floppy -f --set=aabbcc  /LinVHD/NeoKylin6/NeoKylin6.vhd
        set root=${aabbcc}
        probe -u --set=ddeeff ${aabbcc}
        linux        /LinVHD/NeoKylin6/vmlinuz-neokylin  root=UUID=${ddeeff} kloop=/LinVHD/NeoKylin6/NeoKylin6.vhd kroot=/dev/mapper/loop0p1  
        initrd        /LinVHD/NeoKylin6/dracut-neokylin-kloop
}
==================
回复

使用道具 举报

292#
发表于 2017-4-19 15:12:37 | 只看该作者
报告LZ , 您的定制和我自己的定制都成功了,问题也找到了, 还是 kroot 参数配置问题,把我的 kroot 改成kroot=/dev/mapper/loop0p3  即可, 对应上 根 /dev/sda3 ,  当然还是老大对 Nerkylin 没有定义 dev/loop0到/dev/loop7 等设备的 发现 ,最终解决了问题。值得祝贺。 赞。

点评

恭喜!  详情 回复 发表于 2017-4-19 18:24
恭喜!  详情 回复 发表于 2017-4-19 18:24
回复

使用道具 举报

293#
 楼主| 发表于 2017-4-19 18:24:16 | 只看该作者
jxdeng2017 发表于 2017-4-19 15:12
报告LZ , 您的定制和我自己的定制都成功了,问题也找到了, 还是 kroot 参数配置问题,把我的 kroot 改成kr ...

恭喜!
回复

使用道具 举报

294#
 楼主| 发表于 2017-4-19 18:24:17 | 只看该作者
jxdeng2017 发表于 2017-4-19 15:12
报告LZ , 您的定制和我自己的定制都成功了,问题也找到了, 还是 kroot 参数配置问题,把我的 kroot 改成kr ...

恭喜!
回复

使用道具 举报

295#
发表于 2017-4-19 19:04:13 | 只看该作者
本帖最后由 jxdeng2017 于 2017-4-19 19:09 编辑

要感谢大神的指点。
中标麒麟 太像Windows XP 了。很不错。 今天又试着 做了一下 优麒麟(UBUNTUKYLIN 17.04  64位版),最近发布的17.04版本默认使用UKUI桌面环境。从内到外都焕然一新,内核更新为Linux Kernel 4.10版本。 我用LZ的Ubuntu 16.04 的方法 定制了initrd.img ,定制过程没有出一点错,但是 引导时 出现死机,是panic 报错。
看来,有要请大神费神了。 顺便,我的优麒麟(UBUNTUKYLIN 16.04  64位版) 运行的很好。
UBUNTUKYLIN 17.04  64位版


内存崩溃:

UBTKylin17.jpg (82.28 KB, 下载次数: 213)

UBTKylin17.jpg

点评

下载安装后,制作initrd.img没有问题,成功引导了固定vhd了。中间有个错误,是因为 UKylin没有安装kpartx 进入到了initramfs界面,后来手工安装了kpartx后重新制作就可以引导了。 至于这个panic错误,我也经历过  详情 回复 发表于 2017-4-19 21:54
回复

使用道具 举报

296#
 楼主| 发表于 2017-4-19 21:54:55 | 只看该作者
jxdeng2017 发表于 2017-4-19 19:04
要感谢大神的指点。
中标麒麟 太像Windows XP 了。很不错。 今天又试着 做了一下 优麒麟(UBUNTUKYLIN 17 ...

下载安装后,制作initrd.img没有问题,成功引导了固定vhd了。中间有个错误,是因为
UKylin没有安装kpartx 进入到了initramfs界面,后来手工安装了kpartx后重新制作就可以引导了。

至于这个panic错误,我也经历过多次,都是由于init与 local文件里面有语法错误引起的,所以
请你检查一下这两个文件,看看是不是少了花括号 } ,少了 与if 相配对的 fi 语句。

制作好的Ukylin引导文件已经上传,4.10.0-19 (64位) 可在一楼第一个链接下载。
回复

使用道具 举报

297#
发表于 2017-4-20 09:28:17 | 只看该作者
本帖最后由 jxdeng2017 于 2017-4-20 09:31 编辑

LZ 经验丰富! 果然,我在/usr/share/initramfs-tools/scripts/local 文件中插入大神的代码时 不小心 多了一个 }  ,导致代码出错。 我还以为是内核的问题。谢谢LZ指点。又成功了。看来LZ的方法通用性不错。
发两张图,感谢大神的指点,支持中文LINUX !
中标麒麟 6: XPUI

优麒麟17.04: UKUI

NeoKylin.jpg (81.37 KB, 下载次数: 224)

NeoKylin.jpg

UBTKylin.jpg (143.93 KB, 下载次数: 206)

UBTKylin.jpg

点评

呵呵。恭喜。  发表于 2017-4-20 11:06
回复

使用道具 举报

298#
发表于 2017-4-20 14:39:15 | 只看该作者
LZ好,还有两个问题请指教。
1、有些Linux版本没有 kpartx ,dm-setup ,怎么手工安装?  在不使用LVM 时 ,dm-setup , lvm2 是否可以不安装?
2、教程中需要改动的几个文件,init 、local、module等 仅仅是为定制initrd 用的吗?也就是开机启动 LINUX.VHD使用的吗? 如果是的话,那么用LZ定制好的各版本initrd  不就可以启动相应的系统了吗? 可是,我拿你的mageia 4 定制内核启动 我的mageia 5 还是有问题的?  比较迷糊了,请指点。
回复

使用道具 举报

299#
发表于 2017-4-20 14:46:19 | 只看该作者
LZ 还有 一般桌面版系统基本上都安装了ntfs-3g ,能 mount NTFS分区了。还需要安装你的ntfs-3g **.fix 吗? 你能否把手工安装kpartx  , util-linux ,dm-setup 的方法 一并写到教程里?

点评

还是需要手工编译安装那个修改好的ntfs-3g的,因为不修改会在关机时候出现错误,下次再开机可能需要作磁盘检查的。(而且附带的修改好的ntfs-3g)是最新的版本, 至于各个linux发行版安装kpartx dm-setuo的方法,  详情 回复 发表于 2017-4-20 20:17
回复

使用道具 举报

300#
 楼主| 发表于 2017-4-20 20:17:17 | 只看该作者
本帖最后由 2011niumao 于 2017-4-20 20:23 编辑
jxdeng2017 发表于 2017-4-20 14:46
LZ 还有 一般桌面版系统基本上都安装了ntfs-3g ,能 mount NTFS分区了。还需要安装你的ntfs-3g **.fix 吗? ...


还是需要手工编译安装那个修改好的ntfs-3g的,也许不修改也能引导起来,但不修改会在关机时候有 buffer i/o 错误,下次再开机可能需要作磁盘检查的。(此外附带的修改好的ntfs-3g是最新的版本)

至于各个linux发行版安装kpartx dm-setuo的方法,主要是从各自的源里安装的,应该是比较基本的命令了。
所以只写了ubuntu的命令,其他照着参考或稍加修改应该可以的。

如果不使用LVM时候,不需要安装lvm2,  但是dm-stup存疑,不清楚是不是必须的。

所有修改的文件都是为了制作initrd的。原理上,制作好的initrd可以引导很多系统。
这里面ubuntu的通用型最好。

Mageia好像特殊一些。好像不能跨版本吧。就算是同一个系统,升级后旧内核都不好引导起来。
arch也是如此。
记得Mageia会自动安装显卡的闭源驱动,所以升级内核后会有问题的。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-28 23:58

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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