- 主题:写了段脚本,在init之前把整个系统放在内存启动
ramroot for gentoo via initramfs
现在网上流行的ramroot脚本是一套archlinux下基于zram的,他在initramfs中生成一个zram的虚拟磁盘,分区格式化成ext4,之后mount了真的根目录同步过去。不过这么做会因为内存分区是块设备,被重复缓存。
我写的这段很简单,在initramfs中做了一个tmpfs,把根目录同步过去再启动就可以了。
mkdir /ram_chroot
mount -t tmpfs -o rw,noatime none /ram_chroot
cp -a "${CHROOT}"/mnt/.ramdisk/* /ram_chroot/
mount --move /proc /ram_chroot/proc
mount --move /sys /ram_chroot/sys
mount --move /dev /ram_chroot/dev
umount ${CHROOT}
good_msg "Switching to real root: switch_root /ram_chroot ${init} ${init_opts}"
exec switch_root /ram_chroot "${init}"
要最终跑起来还需要一些其他脚本,感兴趣的可参考github zhjie ramroot
--
修改:cppbuilder FROM 1.202.9.*
FROM 1.202.9.*
在x86和树莓派上都测试通过,现在也有一些网友在用都很正常
【 在 cppbuilder 的大作中提到: 】
: ramroot for gentoo via initramfs
: 现在网上流行的ramroot脚本是一套archlinux下基于zram的,他在initramfs中生成一个zram的虚拟磁盘,分区格式化成ext4,之后mount了真的根目录同步过去。不过这么做会因为内存分区是块设备,被重复缓存。
: 我写的这段很简单,在initramfs中做了一个tmpfs,把根目录同步过去再启动就可以了。
: ...................
--
FROM 1.202.9.*
这个主要问题是不容易修改squashfs里的内容,升级啊改配置什么的麻烦。另外我内核里也没编译squashfs
【 在 DreamDreams 的大作中提到: 】
: 直接把整个系统镜像做成squashfs,拷到内存里再mount,跟live cd
: 一样运作,唯一区别是squashfs在内存里,不在光盘/U 盘/硬盘上
: 甚至可以做成PXE启动
--
FROM 1.202.9.*
pxe是Gentoo内置功能了
【 在 hiei 的大作中提到: 】
: 做过 pxe + squashfs in ram
: 用的应该是Debian Live的脚本
--
FROM 1.202.9.*
我是拿来装音乐播放器hqplayer naa、roon ready或者airplay,倒也不算经常升级。不过做成树莓派img之后会分发出去别人会拿来配置自己的ip地址,默认播放器,登录公钥之类的东西,就做了这套方便修改,mount了硬盘chroot进去就可以直接操作了
你说的之前我做过一套类似的不是squashfs是overlayfs+tmpfs,不过感觉不hifi就废弃了
【 在 DreamDreams 的大作中提到: 】
: 另外,其实想保持配置也容易
: 一般live cd就两层,只读的squashfs和rw的tmpfs用overlayfs叠加
: 想保存改变,把这个读写层放磁盘里就行了
: 不过你既然系统都放内存里了,还在线升级配置么?升级配置不就是
: 整个镜像重做一样么?
--
修改:cppbuilder FROM 1.202.9.*
FROM 1.202.9.*
btw, 你不需要告诉我你这套有多好。。。我不是程序员也不是系统管理员,就一普通Linux用户,发现内存启动最流行的方案有点瑕疵就做了一个共享出来而已,你教会了我更先进的squashfs我也没地儿用啊
【 在 DreamDreams 的大作中提到: 】
: 另外,其实想保持配置也容易
: 一般live cd就两层,只读的squashfs和rw的tmpfs用overlayfs叠加
: 想保存改变,把这个读写层放磁盘里就行了
: 不过你既然系统都放内存里了,还在线升级配置么?升级配置不就是
: 整个镜像重做一样么?
--
FROM 1.202.9.*
我id二十多年了,小时候参加信息奥赛用过c++builder不能推断我今天是程序员吧...
【 在 lexluthor 的大作中提到: 】
: 看你这个id应该是程序员啊
--
FROM 1.202.9.*
嗯,我当时确实是用的pascal。比赛之后自己折腾过Delphi,Borland C++,C++builder。
【 在 JulyClyde 的大作中提到: 】
: 小时候的奥塞不是pascal吗
--
FROM 1.202.9.*