无忧启动论坛

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

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

    [复制链接]
481#
 楼主| 发表于 2021-2-20 10:40:30 | 只看该作者
piazini 发表于 2021-2-19 13:29
我想进入单用户模式,但是怎么修改grub的相关文件就是不生效。修改完要用update-grub命令,难道和vhd同目录 ...

第一个,是linux本身命令,不懂. 还是建议不直接扩容而是使用mksquashfs命令备份后恢复这种方式.
第二个, 直接启动到vhd系统的grub菜单现在应该是在vhd外面的,与vhd系统无关(vhd系统的grub2菜单仅仅在虚拟机启动时候有用)
回复

使用道具 举报

482#
发表于 2021-2-21 14:03:56 | 只看该作者
LZ,我扩容的目的就是想着长期使用,我想其他方法:
1.重新创建个VHD(IMG)专门存放自己的数据mount到VHD系统某个目录下,而且系统坏了也不怕数据丢失。类似win的非系统盘。
2.VM虚拟机用gparted重新扩容好后,在转换成VHD文件,我试过不重新编译VHD外的引导文件,也是可以启动的。这个转换就是看磁盘读写速度,我是固态大概2分左右就好了。

我遇到的问题,进VHD系统用gparted只能识别到sda1、sda2(就是我的win的C盘D盘),我尝试修改win下的kroot=/dev/mapper/loop0p1 为kroot=/dev/sda1 修改完VHD系统就启动不了,想问下除了引导菜单的kroot要修改,其他什么地方还需要修改。
回复

使用道具 举报

483#
 楼主| 发表于 2021-2-21 22:04:19 | 只看该作者
第一点,可以进入系统后手动挂载. 或者写成一个脚本,开机后自动运行一下也行.
比如,你的第二个固定vhd文件名字为data.vhd, 在系统vhd同一个子目录ubuntu里面, 可以如下
  1. sudo kpartx -av /host/ubuntu/data.vhd
  2. sudo mount /dev/mapper/loopXp1 /home/ubuntu
复制代码

这里X要看kpartx 的输出而定的.  

第三点, kloop指的是vhd文件, kroot指的是启动后根设备在ubuntu系统内部名称, 修改了就找不到根设备了. 这个是不能修改的, 如果想启动过程中完成第二块vhd 硬盘的挂载, 也可以修改local文件, 设计一个新参数使得,  如果新参数是空值则与原始vhd启动一样;在这个新参数不空的时候系统会在initrd.img阶段挂载完根目录后再执行kpartx 并且挂载第二个vhd到一个固定目录内.
回复

使用道具 举报

484#
发表于 2021-3-10 20:04:56 | 只看该作者

LZ,能帮忙看看这是什么原因造成的么?
生成出来的initrd.img-5.4.0-42-generic有60多M ,之前能引导的才40M多

点评

编辑文件/usr/share/initramfs-tools/scripts/local-bottom/ntfs-3g有些变化,其内容如下 删除了原来说明里的最后一段(不删除的话关机时候会死机panic)  详情 回复 发表于 2021-3-11 10:33
根分区没有正确挂载。 检查一下引导单数是不是正确无误,或者可能需要重新制作initrd.img (有时候升级会把那些手工编辑好的init local的丢失,都还原为原始版本了,这时候系统自动制作的initrd.img可能没有引导vhd  详情 回复 发表于 2021-3-11 10:28
回复

使用道具 举报

485#
 楼主| 发表于 2021-3-11 10:28:33 | 只看该作者
piazini 发表于 2021-3-10 20:04
LZ,能帮忙看看这是什么原因造成的么?
生成出来的initrd.img-5.4.0-42-generic有60多M ,之前能引导的 ...

根分区没有正确挂载。 检查一下引导单数是不是正确无误,或者可能需要重新制作initrd.img
(有时候升级会把那些手工编辑好的init local的丢失,都还原为原始版本了,这时候系统自动制作的initrd.img可能没有引导vhd的代码,需要重新手工制作)
至于initrd.img的大小不必在意吧, 我的initrd.img有90多M.
回复

使用道具 举报

486#
 楼主| 发表于 2021-3-11 10:33:54 | 只看该作者
本帖最后由 2011niumao 于 2021-3-11 10:52 编辑

piazini 发表于 2021-3-10 20:04
LZ,能帮忙看看这是什么原因造成的么?
生成出来的initrd.img-5.4.0-42-generic有60多M ,之前能引导的 ...

编辑文件/usr/share/initramfs-tools/scripts/local-bottom/ntfs-3g有些变化,其内容如下
  1. #!/bin/sh

  2. set -e
  3. case "${1}" in
  4.         prereqs)
  5.                 exit 0
  6.                 ;;
  7. esac

  8. if [ "${ROOTFSTYPE}" = ntfs ] || [ "${ROOTFSTYPE}" = ntfs-3g ] || \
  9.    [ "${LOOPFSTYPE}" = ntfs ] || [ "${LOOPFSTYPE}" = ntfs-3g ] || [ -n "$KLOOP" ] || [ -n "$SQUASHFS" ]
  10. then
  11.         mkdir -p /run/sendsigs.omit.d
  12.         pidof @ount.ntfs-3g >> /run/sendsigs.omit.d/ntfs-3g
  13. fi
  14. exit 0
复制代码

删除了原来说明里的最后一段(不删除的话关机时候会死机panic) ntfs_3g.zip (387 Bytes, 下载次数: 6)

点评

我也遇到这个问题了,是Ubuntu20.04这几个版本更新的时候需要按照原先的操作,重新配置一下吗?  详情 回复 发表于 2021-5-13 15:44
回复

使用道具 举报

487#
发表于 2021-3-11 14:09:53 | 只看该作者
2011niumao 发表于 2021-3-11 10:28
根分区没有正确挂载。 检查一下引导单数是不是正确无误,或者可能需要重新制作initrd.img
(有时候升级会 ...

引导单数?是什么没懂。我用同一个vhd文件,一个新做的initrd.img-5.4.0-42-generic(新)60M、另一个以前做的 initrd.img-5.4.0-42-generic(旧)40M,用(旧)的initrd.img-5.4.0-42-generic能启动,在不改动其他配置和文件路径下,换成(新)这个initrd.img-5.4.0-42-generic就出现图片里的状况了。

点评

[attachimg]476478[/attachimg]检查init文件的权限,让其有可执行权限。 也许能行。  详情 回复 发表于 2021-3-11 22:51
回复

使用道具 举报

488#
 楼主| 发表于 2021-3-11 22:51:57 | 只看该作者
本帖最后由 2011niumao 于 2021-3-11 22:54 编辑
piazini 发表于 2021-3-11 14:09
引导单数?是什么没懂。我用同一个vhd文件,一个新做的initrd.img-5.4.0-42-generic(新)60M、另一个以 ...

检查init文件的权限,让其有可执行权限。 也许能行。
(引导单数应该改为引导参数,就是引导时候你告诉机器的root kloop kroot这几个的值是不是正确)




回复

使用道具 举报

489#
发表于 2021-3-13 08:53:37 | 只看该作者
楼主,第一关就卡住了,理论上解压出来是UBUNTU2004.squashfs这一个文件,我的7z解压出来是个文件夹

点评

不推荐下载做好的系统,推荐自己在win下制作固定大小vhd(16G或更大),vbox安装。 再依照mydracut里的教程制作initrd.img。  详情 回复 发表于 2021-3-13 22:43
回复

使用道具 举报

490#
 楼主| 发表于 2021-3-13 22:43:07 | 只看该作者
本帖最后由 2011niumao 于 2021-3-13 22:44 编辑
friend8179 发表于 2021-3-13 08:53
楼主,第一关就卡住了,理论上解压出来是UBUNTU2004.squashfs这一个文件,我的7z解压出来是个文件夹

不推荐下载做好的系统,推荐自己在win下制作固定大小vhd(16G或更大),霍清华开源镜像网站下载官方的ubuntu iso
在VirtualBox虚拟机安装好安装,再依照mydracut里的教程制作initrd.img。
回复

使用道具 举报

491#
发表于 2021-3-14 22:32:16 | 只看该作者
赞,谢谢
回复

使用道具 举报

492#
发表于 2021-3-16 18:15:08 | 只看该作者
2011niumao 发表于 2021-3-11 22:51
检查init文件的权限,让其有可执行权限。 也许能行。
(引导单数应该改为引导参数,就是引导时候你告诉 ...

谢谢楼主的提点,成功了。
修改权限、和用户、和所属组就好了
sudo chmod 755 /usr/share/initramfs-tools/init
sudo chown root:root /usr/share/initramfs-tools/init

点评

真棒  发表于 2021-3-16 21:36
回复

使用道具 举报

493#
发表于 2021-4-19 22:33:47 | 只看该作者
LZ想请教下,显卡的安装。因为我在网上找的教程都是磁盘上划分区来装的系统,找了好久也没找到VHD系统里的关于安装显卡驱动的。


图片里就是电脑显卡,网上查说默认是使用第三方的显卡驱动,我也尝试关闭nouveau但是总不成功。
当我执行sudo update-initramfs -u时我看到/boot目录觉得又要编译引导了。关键是这次在虚拟机里也不能识别显卡。ubuntu 自带的功能也搜索不到显卡。但是用VHD启动的系统就能搜索出相关的驱动。
现在没方向了,应要怎么弄,才能装上显卡驱动?

点评

开源驱动一般足够使用,不推荐安装专有驱动。对于N卡,确有需要安装时, 先下载驱动文件,命令行下安装。最好安装以前使用mksquashfs命令备份一下系统。  详情 回复 发表于 2021-4-20 11:43
回复

使用道具 举报

494#
 楼主| 发表于 2021-4-20 11:43:05 | 只看该作者
piazini 发表于 2021-4-19 22:33
LZ想请教下,显卡的安装。因为我在网上找的教程都是磁盘上划分区来装的系统,找了好久也没找到VHD系统里的 ...

开源驱动一般足够使用,不推荐安装专有驱动。对于N卡,确有需要安装时,
先下载驱动文件,命令行下安装。最好安装以前使用mksquashfs命令备份一下系统。
回复

使用道具 举报

495#
发表于 2021-4-24 23:17:39 | 只看该作者
LZ,经过实验,还是没有那么难。做好关键一步,关闭集显,重新生成initrd.img-xxxxx-generic就可以了。
$ sudo bash -c "echo blacklist vga16fb >> /etc/modprobe.d/blacklist.conf" && \
$ sudo bash -c "echo blacklist nouveau >> /etc/modprobe.d/blacklist.conf" && \
$ sudo bash -c "echo blacklist rivafb >> /etc/modprobe.d/blacklist.conf" && \
$ sudo bash -c "echo blacklist rivatv >> /etc/modprobe.d/blacklist.conf" && \
$ sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist.conf"
$ sudo sed -i 's+blacklist nvidiafb+#blacklist nvidiafb+g' /etc/modprobe.d/blacklist.conf
$ sudo update-initramfs -u

自动安装就是用ubuntu系统里自带的“软件和更新”--“附加驱动”安装就可以了。
手动安装,详细http://cnblogs.com/wutou/p/14375834.html看这篇吧,都写出来了。

能不能建个WX群,前几天论坛访问不了,真怕论坛哪天就关闭了,文章也就没了,联系不了。
回复

使用道具 举报

496#
发表于 2021-5-13 15:44:17 | 只看该作者
2011niumao 发表于 2021-3-11 10:33
piazini 发表于 2021-3-10 20:04

编辑文件/usr/share/initramfs-tools/scripts/local-bottom/ntfs-3g有 ...

我也遇到这个问题了,是Ubuntu20.04这几个版本更新的时候需要按照原先的操作,重新配置一下吗?

点评

我重新改了一下,发现还是没办法启动,是不能完全按照原先的方法改,还是说NTFS的那个驱动要重装?  详情 回复 发表于 2021-5-13 17:22
回复

使用道具 举报

497#
发表于 2021-5-13 17:22:59 | 只看该作者
songjl1995 发表于 2021-5-13 15:44
我也遇到这个问题了,是Ubuntu20.04这几个版本更新的时候需要按照原先的操作,重新配置一下吗?

我重新改了一下,发现还是没办法启动,是不能完全按照原先的方法改,还是说NTFS的那个驱动要重装?

20210513171516.jpg (482.55 KB, 下载次数: 149)

卡住后提示

卡住后提示

20210513171504.jpg (487.01 KB, 下载次数: 147)

启动时卡住

启动时卡住
回复

使用道具 举报

498#
 楼主| 发表于 2021-5-14 08:32:07 | 只看该作者
毛病是没有正确挂载vhd文件所在的硬盘分区。保险的话,重新把所有手续过一遍:
就是重新编译安装ntfs-3g,重新编辑各个文件,重新生成新的initrd.img。

点评

谢谢大佬回复,我再看看  详情 回复 发表于 2021-5-14 17:17
回复

使用道具 举报

499#
发表于 2021-5-14 17:17:04 | 只看该作者
2011niumao 发表于 2021-5-14 08:32
毛病是没有正确挂载vhd文件所在的硬盘分区。保险的话,重新把所有手续过一遍:
就是重新编译安装ntfs-3g, ...

谢谢大佬回复,我再看看
回复

使用道具 举报

500#
发表于 2021-5-14 18:31:17 | 只看该作者
还是不行
我看现在帖子里这一部分
        ##############################################################
        #                         TO BOOT FROM VHD                   #
        ##############################################################
记得原来不是这样,这个文件应该修改为什么样子呀?
NTFS-3g也是要换新的?

点评

看看附件,附件是新版本的。注意init文件的大小写。  详情 回复 发表于 2021-5-14 19:14
回复

使用道具 举报

501#
 楼主| 发表于 2021-5-14 19:14:07 | 只看该作者
songjl1995 发表于 2021-5-14 18:31
还是不行
我看现在帖子里这一部分
        ########################################################## ...

ubuntukloopnew.zip (406.8 KB, 下载次数: 17)

看看附件,附件是新版本的。注意init文件的大小写。

点评

收到,谢谢大佬  详情 回复 发表于 2021-5-15 09:32
回复

使用道具 举报

502#
发表于 2021-5-15 09:32:13 | 只看该作者
2011niumao 发表于 2021-5-14 19:14
看看附件,附件是新版本的。注意init文件的大小写。

收到,谢谢大佬
回复

使用道具 举报

503#
发表于 2021-5-24 16:19:26 | 只看该作者
大佬,我研究了半天卡在一个小问题上
关于vmlinuz
我是ubuntu20.04
我现在自己重新编的新的initrd.img-5.8.0-53-generic可以配合原来的vmlinuz-5.8.0-44-generic启动
但是不能配合boot里面的vmlinuz-5.8.0-53-generic启动
这个vmlinuz-5.8.0-53-generic怎么让它重新生成一份呀?

点评

这个说法有问题。vmlinuz一般没有问题的。可能你在制作initrd.img时候是使用的是5.8.0-44内核。 你需要把内核版本号附加在mkinitramfs后面如下。这样得到指定版本号的initrd.img.  详情 回复 发表于 2021-5-24 17:23
回复

使用道具 举报

504#
 楼主| 发表于 2021-5-24 17:23:19 | 只看该作者
songjl1995 发表于 2021-5-24 16:19
大佬,我研究了半天卡在一个小问题上
关于vmlinuz
我是ubuntu20.04

这个说法有问题。vmlinuz一般没有问题的。可能你在制作initrd.img时候是使用的是5.8.0-44内核。
你需要把内核版本号附加在mkinitramfs后面如下。这样得到指定版本号的initrd.img.
  1. sudo mkinitramfs  -o initrd.img-myinitrd 5.8.0-54-generic
复制代码

点评

大佬厉害,现在解决了。感谢,真的太感谢了  详情 回复 发表于 2021-5-24 17:43
我之前输入的命令是这样的 然后复制到启动的路径下的  详情 回复 发表于 2021-5-24 17:40
回复

使用道具 举报

505#
发表于 2021-5-24 17:40:15 | 只看该作者
2011niumao 发表于 2021-5-24 17:23
这个说法有问题。vmlinuz一般没有问题的。可能你在制作initrd.img时候是使用的是5.8.0-44内核。
你需要 ...

我之前输入的命令是这样的
  1. sudo /usr/sbin/mkinitramfs -o ~/initrd.img-5.8.0-53-generic
复制代码

然后复制到启动的路径下的
回复

使用道具 举报

506#
发表于 2021-5-24 17:43:47 | 只看该作者
2011niumao 发表于 2021-5-24 17:23
这个说法有问题。vmlinuz一般没有问题的。可能你在制作initrd.img时候是使用的是5.8.0-44内核。
你需要 ...

大佬厉害,现在解决了。感谢,真的太感谢了
回复

使用道具 举报

507#
发表于 2021-5-25 21:55:14 | 只看该作者
LZ,这问题你有没有遇到过,blk_update_request: I/O error, dev loop0, sector 223800 op 0x9:(WRITE_ZEROES) flags 0x800 phys_seg 0 prio class 0

====详细日志===================================================
13:51:06 systemd: Failed to start snap.gnome-logs.gnome-logs.096b7e93-fea2-43ec-9e8d-3f205902082f.scope.
13:50:55 kernel: blk_update_request: I/O error, dev loop0, sector 223800 op 0x9:(WRITE_ZEROES) flags 0x800 phys_seg 0 prio class 0
13:50:55 kernel: blk_update_request: I/O error, dev loop0, sector 223800 op 0x9:(WRITE_ZEROES) flags 0x800 phys_seg 0 prio class 0
13:50:55 kernel: blk_update_request: I/O error, dev loop0, sector 223768 op 0x9:(WRITE_ZEROES) flags 0x800 phys_seg 0 prio class 0
13:50:55 kernel: blk_update_request: I/O error, dev loop0, sector 223736 op 0x9:(WRITE_ZEROES) flags 0x800 phys_seg 0 prio class 0
13:50:52 bluetoothd: Failed to set mode: Blocked through rfkill (0x12)
13:50:52 spice-vdagent: Cannot access vdagent virtio channel /dev/virtio-ports/com.redhat.spice.0
13:50:51 pulseaudio: [pulseaudio] backend-ofono.c: Failed to register as a handsfree audio agent with ofono: org.freedesktop.DBus.Error.ServiceUnknown: The name org.ofono was not provided by any .service files
13:50:49 bluetoothd: Failed to set mode: Blocked through rfkill (0x12)
回复

使用道具 举报

508#
发表于 2021-5-25 22:00:18 | 只看该作者
songjl1995 发表于 2021-5-13 15:44
我也遇到这个问题了,是Ubuntu20.04这几个版本更新的时候需要按照原先的操作,重新配置一下吗?

不好意思,很久没来了。你编译时用命令自动获取版本号
sudo /usr/sbin/mkinitramfs -o ~/initrd.img-`uname -r`

你可以上到492楼(http://bbs.wuyou.net/forum.php?m ... &fromuid=349519

升级后,原来文件会被覆盖,所以要重新执行一遍,最后要给文件个权限:
sudo chmod 755 /usr/share/initramfs-tools/init
sudo chown root:root /usr/share/initramfs-tools/init
回复

使用道具 举报

509#
发表于 2021-5-25 22:03:34 | 只看该作者
songjl1995 发表于 2021-5-13 15:44
我也遇到这个问题了,是Ubuntu20.04这几个版本更新的时候需要按照原先的操作,重新配置一下吗?

更保险的是两个文件都加上执行权限(下面命令四行可以一起复制到命令行)
  1. sudo chmod 755 /usr/share/initramfs-tools/init && \
  2. sudo chown root:root /usr/share/initramfs-tools/init && \
  3. sudo chmod 755 /usr/share/initramfs-tools/scripts/local-bottom/ntfs_3g && \
  4. sudo chown root:root /usr/share/initramfs-tools/scripts/local-bottom/ntfs_3g
复制代码
回复

使用道具 举报

510#
发表于 2021-5-31 21:35:23 | 只看该作者
piazini 发表于 2021-5-25 21:55
LZ,这问题你有没有遇到过,blk_update_request: I/O error, dev loop0, sector 223800 op 0x9:(WRITE_ZEROES ...

楼主,经过使用在Docker里load总共15G左右的images时就会卡死,无意间在字符界面发现了问题,下图,网上查询,是因为缓存满了要写入磁盘,而I/O又没有那么快速度,而且系统还有120秒限制,网上有人贴出内核代码,确实是内核默认设置120秒,系统想把120设置成0但是又不成功,所以就卡在那里就不动。只能用alt+sysrq+r+e+i+s+u+b重启,无意中发现alt+sysrq+r+e+o是关机。我手动 sudo echo 0 也是提示权限不足。
现在遇到问题:
1.同样的文件从vmdk克隆到vhd 之前的VHD就没有提示过磁盘I/O问题,最近新做了一个VHD(扩容)就开始中卡死。
2.那个sudo echo 0 手动也失败。
LZ,有没有思路给提醒下。怎么修复磁盘I/O问题?

点评

是不是因为vhd在物理磁盘上不是连续文件的导致的。 我原来不是连续的,系统不跑什么放在那里就会卡死,浏览网页更容易。后来拿移动硬盘折腾了一次数据,目前好多了。 我是固态,不过是sata接口的。 希望能帮到您  详情 回复 发表于 2021-6-1 11:42
这个就不会了。bufffer i/o问题历史悠久,不知道应该怎么解决。实际上之所以手动编辑 ntfs-3g,就是为了解决这一问题的。现在看可能只是部分解决了。需要高手来了。  详情 回复 发表于 2021-6-1 08:34
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-25 16:47

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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