怎么模仿docker coreos设计一个双核心操作系统

sh/bash/dash/ksh/zsh等Shell脚本
回复
anth
帖子: 172
注册时间: 2010-11-09 3:06

怎么模仿docker coreos设计一个双核心操作系统

#1

帖子 anth » 2022-09-07 21:43

从coreos获得的灵感 把一个操作系统分成os0和os1 随便使用其中一个 另外一个作为备份 一旦升级出错就可以随时降级 同样的设计也出现在fedora coreos 我也遇到了这个问题 也就是除了主系统最好还是要有一个备用系统 以前用启动u盘 后来发现备用系统还是要和主系统一模一样才方便 那么问题来了 需要做双核心系统

我是这么做的 苦btrfs很久了 这次顺便彻底放弃了btrfs和lvm 磁盘回归了最原始的ext MBR模式 三个分区 1区存数据 2区3区做系统 先把操作系统Ubuntu fedora archlinux的任何一个放到2区 然后修复一下boot和fstab 接下来在常用操作系统扩展包里面增加两个函数 一个是pacman.push 作用是把主系统全盘rsync --delete到备用系统 一个是pacman.checkout 作用是修改boot grub.cfg 如果default等于0就改成1 如果等于1就改成0 只需要两个函数就可以实现coreos的这个功能 终于可以彻底放弃btrfs snapshot了

碰到两个难点 如果用python做 会很容易 但是我很反感python 而用c++ df | egrep 2区 如果有2区说明3区是主分区 如果没2区说明2区是主分区 这么个简单的判断python只需要三两行 c++我卡这里了
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 怎么模仿docker coreos设计一个双核心操作系统

#2

帖子 lilydjwg » 2022-09-08 11:49

你是想要 A/B 分区?Deepin 那种?

egrep 已经开始输出警告了,请使用 grep -E。

现在都什么年代了还用 MBR。

没明白你为什么用 C++ 就卡住了。难道你还不太会 C++?那就去学呀。

你这么来回改 fstab 不嫌麻烦么?我觉得你还不如来回改分区或者文件系统的 label。grub 也支持按 label 搜索分区 / 文件系统。

PS: btrfs 的快照功能挺好的呀,又快又省空间。
anth
帖子: 172
注册时间: 2010-11-09 3:06

Re: 怎么模仿docker coreos设计一个双核心操作系统

#3

帖子 anth » 2022-09-08 17:59

egrep没有警告
pacman -Qo egrep的回答结果是
/usr/bin/egrep is owned by grep 3.7-1
这本来就是同一个包
当然了 系统和系统之间可能有细微差别 这不重要


我不用c++是因为这整个项目就俩函数 每个函数三五行 加起来都不打算超过十行 用c++没有一百行下不来 更麻烦的是我用c++的习惯很特殊 所有的cpp写在一个文件里面做成类似操作系统一样 维护方便 但是函数就定死了 int function(int, char **)这一个类型 输出字符不很灵活 虽然什么都还是能够做到 但是不是首选

至于fstab 我不改的啊 第一次是做系统的时候修改 毕竟磁盘都格式化了 后面是不改的

push就是系统备份 通过bash rsync实现
checkout就是调用另一个分支 通过bash sed /boot/grub/grub.cfg实现

比较来比较去 最后还是用bash最多 python也用的多 但是不喜欢 c++虽然软件能力很强 但是太费事 而且没办法跨平台到手机上 如果不是个别项目计算量大 还真是没有保留的必要了
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 怎么模仿docker coreos设计一个双核心操作系统

#4

帖子 lilydjwg » 2022-09-08 18:05

那个警告是 grep 3.8 加的哦: https://www.phoronix.com/news/GNU-Grep- ... grep-fgrep

呃我还以为你是喜欢用 C++……
anth
帖子: 172
注册时间: 2010-11-09 3:06

Re: 怎么模仿docker coreos设计一个双核心操作系统

#5

帖子 anth » 2022-09-08 18:15

我的确喜欢c++ 严格的说我喜欢别人用c++写东西 我自己几乎从来不用 所有的语言我最熟悉c++但是从来不用 我宁愿让电脑多跑一个小时 也不想自己多写两百行
anth
帖子: 172
注册时间: 2010-11-09 3:06

Re: 怎么模仿docker coreos设计一个双核心操作系统

#6

帖子 anth » 2022-09-08 20:24

做完了 增加了一个函数 每个函数超行数了 总计二十多行 其实有重复的 方便后续维护 还算简单
附件
image.jpg
回复