无忧启动论坛

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

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

    [复制链接]
811#
发表于 2019-6-14 10:43:29 | 只看该作者
新版本 efi 下启动有无改观?
如有楼主有时间,期待更新...
回复

使用道具 举报

812#
发表于 2019-10-12 11:08:07 | 只看该作者
EFI启动的,BCD引导怎么设置呢,需要更改参数吗,或者用bootice直接添加就可以?
回复

使用道具 举报

813#
发表于 2020-2-16 23:04:14 | 只看该作者
看来Linux的安装方法跟window很不一样哦
回复

使用道具 举报

814#
发表于 2020-2-18 06:41:13 | 只看该作者

好东西,顶楼主!
回复

使用道具 举报

815#
发表于 2020-2-28 17:13:25 | 只看该作者
回复

使用道具 举报

816#
发表于 2020-2-29 20:42:14 | 只看该作者
怎么在封装的VHD系统里放一个小软件 ?系统安装完这个软件也安装了
回复

使用道具 举报

817#
发表于 2020-3-1 15:46:38 | 只看该作者

ubuntu18.04 vhd系统,5.3.0-28-generic版本,笔记本是联想R720的,关机总是卡死。有没有谁碰到这种情况解决的,分享一下。

以下ntfs-3g内容

#!/bin/sh

##set -e
##case "${1}" in
##    prereqs)
##        exit 0
##        ;;
##esac

if [ "${ROOTFSTYPE}" = ntfs ] || [ "${ROOTFSTYPE}" = ntfs-3g ] || \
   [ "${LOOPFSTYPE}" = ntfs ] || [ "${LOOPFSTYPE}" = ntfs-3g ] || [ -n "$kloop" ] || [ -n "$squashfs" ]
then
    mkdir -p /run/sendsigs.omit.d
    pidof mount.ntfs >> /run/sendsigs.omit.d/ntfs-3g
    pidof mount.ntfs-3g >> /run/sendsigs.omit.d/ntfs-3g
fi
#####################################################################
##the following maybe help to resolve the buffer I/O error problem
##when reboot or halt.
#####################################################################

if [ -d /run/initramfs -a -f /init ]
then
    mkdir -p /run/initramfs/dev /run/initramfs/host /run/initramfs/proc /run/initramfs/root /run/initramfs/run /run/initramfs/sys /run/initramfs/tmp
    rm -rf   /lib/modules
    for xxx in /*
      do   
    if [ ${xxx} = "/dev" -o ${xxx} = "/host" -o ${xxx} = "/proc" -o ${xxx} = "/root" -o ${xxx} = "/run" -o ${xxx} = "/sys" -o ${xxx} = "/tmp" ];
    then
        :
    else
        cp -a ${xxx} /run/initramfs/  1>/dev/null 2>&1;
    fi
    done
    unset xxx
fi
####################################################################
exit 0

回复

使用道具 举报

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

使用道具 举报

819#
 楼主| 发表于 2020-3-2 15:18:12 来自手机 | 只看该作者
左手按住  alt printscreen两个键不放,右手依次点击字母 r e i s u b六个键,可以安全重启。
回复

使用道具 举报

820#
发表于 2020-3-2 15:29:53 | 只看该作者
谢谢楼主!
留个脚印
回复

使用道具 举报

821#
发表于 2020-3-2 15:40:32 | 只看该作者
2011niumao 发表于 2020-3-2 15:18
左手按住  alt printscreen两个键不放,右手依次点击字母 r e i s u b六个键,可以安全重启。

谢谢!以前试了几次,有一次正常关机(新装不升级的情况),后来dist-upgrade,关机就卡在I/O错误,只能硬关机。有空再折腾,没找到原因。

点评

如果是I/O错误,那应该是手工编译安装的ntfs-3g被升级时候覆盖了,需要重新编译安装ntfs-3g和重新制作一个内核镜像(initrd.img).  详情 回复 发表于 2020-3-3 15:56
回复

使用道具 举报

822#
 楼主| 发表于 2020-3-3 15:56:35 | 只看该作者
riverdarda 发表于 2020-3-2 15:40
谢谢!以前试了几次,有一次正常关机(新装不升级的情况),后来dist-upgrade,关机就卡在I/O错误,只能 ...

如果是I/O错误,那应该是手工编译安装的ntfs-3g被升级时候覆盖了,需要重新编译安装ntfs-3g和重新制作一个内核镜像(initrd.img).
回复

使用道具 举报

823#
发表于 2020-4-13 11:30:32 | 只看该作者
请问有成功使用装到VHD内的UBUNTU的案例吗?有更新版吗?我去年尝试了无法成功启动VHD的,但ISO的就行。
回复

使用道具 举报

824#
发表于 2020-4-24 12:43:25 | 只看该作者
2011niumao 发表于 2017-3-8 15:24
哦。能启动说明没有逻辑上的错误。可能是时间上的问题。挂载ntfs分区到/host后,挂载过程尚未完成就开始k ...


牛毛兄,ubuntu 20.04似乎不行了,我试了几次,能制作启动文件,就是不能启动,这里有sleep 3的,也不能用ubuntu18的启动文件,求解。

点评

需要检查启动的各个参数是不是正确. 根目录没有挂载成功. 如果参数没有错误,可去一楼连接下载我制作好的引导文件, 我在第一楼的百度共享里面刚刚上传了两个文件 UBUNTU20.04LTS 的启动文件 vmlinuz-5.3.0-46-gen  详情 回复 发表于 2020-4-24 17:50
回复

使用道具 举报

825#
 楼主| 发表于 2020-4-24 17:50:29 | 只看该作者
本帖最后由 2011niumao 于 2020-4-25 11:53 编辑
gland2015 发表于 2020-4-24 12:43
牛毛兄,ubuntu 20.04似乎不行了,我试了几次,能制作启动文件,就是不能启动,这里有sleep 3的,也不 ...

需要检查启动的各个参数是不是正确. 根目录没有挂载成功.
如果参数没有错误,可去一楼连接下载我制作好的引导文件,
我在第一楼的百度共享里面刚刚上传了两个文件
UBUNTU20.04LTS 的启动文件  vmlinuz-5.4.0-26-generic initrd.img-5.4.0-26-generic
可以用它们引导看看

点评

在我机器上还是成功引导了固定vhd的20.04的.  详情 回复 发表于 2020-4-24 17:52
在我机器上还是成功引导了固定vhd的20.04的.  详情 回复 发表于 2020-4-24 17:52
回复

使用道具 举报

826#
 楼主| 发表于 2020-4-24 17:52:14 | 只看该作者
2011niumao 发表于 2020-4-24 17:50
需要检查启动的各个参数是不是正确. 根目录没有挂载成功.
如果参数没有错误,可去一楼连接下载我制作好的 ...

在我机器上还是成功引导了固定vhd的20.04的.
回复

使用道具 举报

827#
 楼主| 发表于 2020-4-24 17:52:24 | 只看该作者
本帖最后由 2011niumao 于 2020-4-25 11:56 编辑
2011niumao 发表于 2020-4-24 17:50
需要检查启动的各个参数是不是正确. 根目录没有挂载成功.
如果参数没有错误,可去一楼连接下载我制作好的 ...
新上传的,vmlinuz-5.3.0-46-generic vmlinuz-5.3.0-46-generic  是UBUNTU 18.04 LTS的
vmlinuz-5.4.0-26-generic initrd.img-5.4.0-26-generic是UBUNTU 20.04 LTS的,不要弄混了
(我就搞混了上传错了)

点评

的确是我搞错了,磁盘分区成gpt的了,还有逻辑分区。不过我在使用过程中发现,如果cpu使用过高会造成死机,最后我在本地磁盘上装好系统和软件,再备份还原到vhd里解决了这个问题。牛毛兄怎么看,我怀疑是init文件的  详情 回复 发表于 2020-4-26 09:21
回复

使用道具 举报

828#
发表于 2020-4-26 09:21:47 | 只看该作者
2011niumao 发表于 2020-4-24 17:52
新上传的,vmlinuz-5.3.0-46-generic vmlinuz-5.3.0-46-generic  是UBUNTU 18.04 LTS的
vmlinuz-5.4.0-26-g ...

的确是我搞错了,磁盘分区成gpt的了,还有逻辑分区。不过我在使用过程中发现,如果cpu使用过高会造成死机,最后我在本地磁盘上装好系统和软件,再备份还原到vhd里解决了这个问题。牛毛兄怎么看,我怀疑是init文件的问题,因为现在删除nousid不行了,需要替换这个文件,然后导致了兼容性问题?。

点评

我有一段时间也是间隔性死机,百度后发现可能与内核有关,不见得是cpu过热。 有一个方案是“定期内存清理”, 不知道其效果,可以试试。  详情 回复 发表于 2020-5-10 11:30
本版加入了一种新的引导模式,用来引导squashfs只读文件系统。(使用了overlay机制) 制作方法与KLOOP的方法一样,还是分为三步。 第一步,编译安装修改过的ntfs-3g。 (不修改则无法防止关机时候在卸载根设备前  详情 回复 发表于 2020-4-26 11:52
cpu过高死机,备份还原到vhd可以解决问题-----不理解,第一感觉是cpu温度太高导致的cpu罢工. 不像是init文件问题. 但能解决就好,不知道原理. 我都是靠测试-摸索往前走的,对linux机制并没有深入理解. 今天上传  详情 回复 发表于 2020-4-26 11:34
回复

使用道具 举报

829#
 楼主| 发表于 2020-4-26 11:34:30 | 只看该作者
gland2015 发表于 2020-4-26 09:21
的确是我搞错了,磁盘分区成gpt的了,还有逻辑分区。不过我在使用过程中发现,如果cpu使用过高会造成死机 ...

cpu过高死机,备份还原到vhd可以解决问题-----不理解,第一感觉是cpu温度太高导致的cpu罢工.
不像是init文件问题.  但能解决就好,不知道原理.

我都是靠测试-摸索往前走的,对linux机制并没有深入理解.

今天上传了一个 ubuntu18044 与 ubuntu 2004 ,都是只有2G大小的squashfs 文件,
用7z分割为4个小文件.  有兴趣可以下载,用7z解压合并为一个,照着引导squashfs 的方法
写好引导,就可以使用了.

点评

嗯,不管怎么样,都非常感谢楼主的分享。  详情 回复 发表于 2020-4-26 21:45
回复

使用道具 举报

830#
 楼主| 发表于 2020-4-26 11:52:10 | 只看该作者

发布两个只读squashfs系统ubuntu18044与2004

本帖最后由 2011niumao 于 2020-5-2 18:17 编辑

在一楼百度云共享上传了两个 ubuntu18.04x64(设置好了桌面特效) 与 ubuntu 20.04x64(无桌面特效) 的2G左右的squashfs 文件系统, 用7z分割为3,4个小文件.

有兴趣的可以连带启动用的initrd.img1804 ,vmlinuz1804 一起下载下来,用7z把多个分卷解压合并为一个, 将squashfs文件与vmlinuz1804, initrd.img1804拷贝到一个硬盘分区(或优盘内)的名字为ubuntu的子目录内(如果没有就自己建立一个).如下写好grub4dos,grub2的引导菜单, 就可以直接启动到squashfs系统来体验使用了.
readme-squashfsubt2004.zip (2.32 KB, 下载次数: 30)
grub4dos菜单:
  1.     title UBUNTU1804-squashfs
  2.     find --set-root --ignore-floppies --ignore-cd  /ubuntu/UBUNTU1804.squashfs
  3.     uuid ()
  4.     kernel /ubuntu/vmlinuz1804 root=UUID=%?% squashfs=/ubuntu/UBUNTU1804.squashfs apparmor=0
  5.     initrd  /ubuntu/initrd.img1804
复制代码
grub2菜单:
  1.     menuentry "UBUNTU1804-squashfs "  --class ubuntu  {
  2.             insmod gzio
  3.             insmod part_msdos
  4.             insmod part_gpt
  5.             insmod ext2
  6.             insmod ntfs
  7.             insmod probe
  8.             set sfsfile="/ubuntu/UBUNTU1804.squashfs"
  9.             set root=(hd0,1)
  10.             search --no-floppy -f --set=aabbcc  $sfsfile
  11.             set root=${aabbcc}
  12.             probe -u --set=ddeeff ${aabbcc}
  13.             linux         /ubuntu/vmlinuz1804   root=UUID=${ddeeff} squashfs=$sfsfile  rw apparmor=0
  14.             initrd         /ubuntu/initrd.img1804
复制代码
注释:对于squahsfs的ubuntu系统,需要在引导时候加入参数apparmor=0,这样网络可自动链接。

点评

squashfs系统是一个压缩格式的只读系统,有多种使用方法: 第一,仅仅作为已有系统的备份存储。 第二,可以拷贝到优盘上,把优盘做好启动设置(启动盘),可以作为(只读)随身带系统。 第三,可以恢复到一个指定  详情 回复 发表于 2020-4-26 18:33
回复

使用道具 举报

831#
 楼主| 发表于 2020-4-26 18:33:40 | 只看该作者

squashfs只读文件系统几种使用方法

本帖最后由 2011niumao 于 2020-4-27 09:20 编辑

squashfs系统是一个压缩格式的只读系统,有多种使用方法:
第一,可以放在一个硬盘分区上,作好启动设置后直接启动到这个只读squashfs系统。也可仅作为备份存储。
第二,可以拷贝到优盘上,把优盘做好启动设置(启动盘),可以作为(只读)随身带系统。
第三,可以恢复到一个指定的硬盘分区(需要把该分区的所有数据备份到其他地方)。
(注意,恢复时先进入squashfs系统,然后把这个分区格式化为ext4,分区的原有的所有数据不在存在)
第四,也可以使用boot=casper启动方式,但要求必须把squashfs文件放在某个分区的一个名字为casper的目录内。

第五, 最后的也是最重要的,制作成一个可写的固定vhd系统(仅需一个优盘作启动盘,启动方式是grub4dos或grub2)

先在windows下或者winPE下制作一个固定大小的VHD(最小8G,推荐16G或24G),初始化,
作分区(格式化为fat ntfs都可以,后面还需要格式化ext4),标记为活动分区。

再启动到squashfs系统,在这个系统里面先使用kpartx识别vhd,再把vhd上分区格式化为ext4,
挂载这个vhd上的分区后用rsync把整个系统克隆到已经做好的固定VHD上。

最后编辑好(启动盘)上的grub4dos grub2的启动菜单就可以了。

注释1:不管squashfs文件在硬盘还是在优盘,都可以只把启动方式做在优盘上,即grub4dos grub2和菜单都在优盘里,
这样不涉及本地硬盘的引导问题,是一种更安全的方式。然后把引导优盘插在电脑上启动后选择从优盘引导。

注释2 : 如果想用VirtualBox启动这个vhd,再在squashfs系统里给vhd盘安装grub2,手工编辑一下grub.cfg即可。
回复

使用道具 举报

832#
发表于 2020-4-26 21:45:09 | 只看该作者
2011niumao 发表于 2020-4-26 11:34
cpu过高死机,备份还原到vhd可以解决问题-----不理解,第一感觉是cpu温度太高导致的cpu罢工.
不像是init文 ...

嗯,不管怎么样,都非常感谢楼主的分享。
回复

使用道具 举报

833#
发表于 2020-4-28 10:05:11 | 只看该作者
能不能做一个14.04的Ubuntu,安卓编译要用这个版本的

点评

原来做过,没有留备份。确实需要可以按照一楼百度云链接的mydracut.zip中的教程自行制作。 不过如果是生产环境,建议安装在真实分区而不是vhd。  详情 回复 发表于 2020-4-30 09:51
很早以前做过,早删除了. 可以根据mydracut里面的教程自己制作看看,  发表于 2020-4-29 14:34
回复

使用道具 举报

834#
 楼主| 发表于 2020-4-30 09:51:46 | 只看该作者
xiaohuang233 发表于 2020-4-28 10:05
能不能做一个14.04的Ubuntu,安卓编译要用这个版本的

原来做过,没有留备份。确实需要可以按照一楼百度云链接的mydracut.zip中的教程自行制作。
不过如果是生产环境,建议安装在真实分区而不是vhd。
回复

使用道具 举报

835#
发表于 2020-5-1 16:04:02 来自手机 | 只看该作者
感谢分享
回复

使用道具 举报

836#
 楼主| 发表于 2020-5-10 11:30:54 | 只看该作者
本帖最后由 2011niumao 于 2020-5-10 11:33 编辑
gland2015 发表于 2020-4-26 09:21
的确是我搞错了,磁盘分区成gpt的了,还有逻辑分区。不过我在使用过程中发现,如果cpu使用过高会造成死机 ...

我有一段时间也是间隔性死机,百度后发现可能与内核有关,不见得是cpu过热。
有一个方案是“定期内存清理”, 不知道其效果,可以试试。

方法二:定期清理内存

该操作可能导致部分浏览器页面内容丢失

转:https://blog.csdn.net/qq_21398167/article/details/51657977

# vim /root/satools/freemem.sh

#!/bin/bash

used=`free -m | awk 'NR==2' | awk '{print $3}'`
free=`free -m | awk 'NR==2' | awk '{print $4}'`

echo "===========================" >> /var/log/mem.log
date >> /var/log/mem.log
echo "Memory usage | [Use:${used}MB][Free:${free}MB]" >> /var/log/mem.log

if [ $free -le 100 ] ; then
                sync && echo 1 > /proc/sys/vm/drop_caches
                sync && echo 2 > /proc/sys/vm/drop_caches
                sync && echo 3 > /proc/sys/vm/drop_caches
                echo "OK" >> /var/log/mem.log
else
                echo "Not required" >> /var/log/mem.log
fi

将脚本添加到crond任务,定时执行。

# echo "*/1 * * * * root /root/satools/freemem.sh" >> /etc/crontab

crontab -e
添加
*/1 * * * * root /root/satools/freemem.sh

(切换到root用户下将上面那句话加入到crontab里,注意格式*之间的空格 )

加入自动释放内存脚本以后,再也没有死机过。


回复

使用道具 举报

837#
 楼主| 发表于 2020-5-14 12:41:11 | 只看该作者
本帖最后由 2011niumao 于 2020-5-29 11:43 编辑

在SQUASHFS只读系统中制作可写img系统.
当启动到一个只读squashfs系统后,如果想安装一些自己喜欢的软件并且保留到系统中,可以预先制作一个固定大小的vhd再把整个系统同步rsync到vhd的分区上.也可以在squashfs系统中制作一个img,把系统恢复到img上,以UBUNTU2004.squashfs为例, 在squashfs系统中依次输入命令如下.
  1. sudo dd if=/dev/zero of=/media/ubuntu/UBT/ubuntu/ubt.vhd bs=1G count=16
  2. sudo kpartx -av /media/ubuntu/UBT/ubuntu/ubt.vhd
  3. sudo mkfs.ext4 /media/ubuntu/UBT/ubuntu/ubt.vhd
  4. sudo mkdir /tmp/mm /tmp/tt
  5. sudo mount --bind / /tmp/mm
  6. sudo mount /media/ubuntu/UBT/ubuntu/ubt.vhd /tmp/tt
  7. sudo rsync -SHav /tmp/mm/* /tmp/tt/
复制代码
制作完毕.这里kpartx命令可能不需要,存疑.另外输出文件在标签为UBT的硬盘分区的子目录ubuntu内,文件名字为ubt.vhd(正常的名字后缀应该为img).再设置引导即可直接启动到这个可写img系统,grub2菜单如下
  1. enuentry "ubt-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.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 lo $vhdfile
  14.         linux        (lo)/boot/vmlinuz    root=UUID=${ddeeff} kloop=$vhdfile  rw kroot=/dev/loop0 audit=0 apparmor=0
  15.         initrd        (lo)/boot/initrd.img  
  16. }
复制代码
GRUB4DOS需要把两个引导文件拷贝到外面,菜单例子如下:
  1. title 启动ubt.img
  2.     find --set-root --ignore-floppies --ignore-cd  /ubuntu/ubt.img
  3.     uuid ()
  4.     kernel /ubuntu/vmlinuz root=UUID=%?% kloop=/ubuntu/ubt.img kroot=/dev/loop0
  5.     initrd  /ubuntu/initrd.img
复制代码
附注1:  这个就是传统的wubi安装模式, 只是kloop引导模式包含wubi模式作为一个特例.
附注2:  最好在squashfs系统中运行"sudo blkid"查看img文件系统的uuid, 并把img文件系统中"/etc/fstab"文件修改好再重启.
回复

使用道具 举报

838#
发表于 2021-4-5 08:43:33 | 只看该作者
感恩分享 刚好要编译openwrt
回复

使用道具 举报

839#
发表于 2022-10-14 12:10:46 | 只看该作者
学习使我快乐。
回复

使用道具 举报

840#
发表于 2023-5-28 00:41:06 | 只看该作者
终于找到linux版的vhd了,学习一下
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-19 06:17

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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