无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 12148|回复: 57
打印 上一主题 下一主题

[原创] Debian Linux buster overlay无盘桌面实践

    [复制链接]
跳转到指定楼层
1#
发表于 2019-8-17 11:01:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 友联电脑 于 2019-8-30 23:19 编辑

   Linux无盘启动,有各种各样的方式,如nfs,iscsi等等。这些方式,在使用的时候,都高度依赖相应服务,不能断线,否则客户机马上就会进入死机模式。还有客户机在使用的过程中,对系统的读写,增删,都会通过网络将数据回写到相应的服务器上,再者就是多人同时使用下,能否很好的满足以上工作。
  经过段时间的了解,学习,参考相关资料,决定采用overlay作为客户机的根文件系统。overlay它是一个堆叠虚拟文件系统,能将多个目录合并堆叠成成一个最终目录,又能将只读,可写等划分开来,用它作为根文件系统,再好不过了。实践证明,客户机启动后,没有因为读写及权限而产生各种问题,客户机用起来,就像是本地有盘一样,可以增删,重启后又恢复原样。如果需要保存相关操作数据,应另行挂载各类存储设备。总体看来,overlay真的是个不错的选择。关于它的具体要细节,网上搜搜到处都是,在此就更多的解释。
  好了,言归正传上图

      这是在系统启动过程中的一个截图,加载内核及映像的时间太快,一晃而过,所以先略过
  
  登录系统

  
  GNOME桌面应用软件,稍加清理,将不用的软件卸载掉,加上几个用的比较顺手的软件包

  文件系统载加情况,也上几张图


     好了,到这也差不多了,最后是IPXE的启动菜单,#!ipxe


  这样的客户机,如果跑点服务,容器,虚拟化什么的,也是一个不错的选择,计算之类的那就再适合不过了。因为它启动后就是一个RAMOS,独立性很强。
  对了,还有个想调整又没有找到办法的问题,欢迎提供宝贵方法,在此先谢谢了。
  问题是这样的,通过网络拉取的基础映像系统,不能大于客户机物理内存的50%,会报内存不足而无法拉取
 

  谢谢          
190822 
经过坛里几天的对此贴的交流,发现有兴趣的寥寥无几,真正动手的更少,某些东西更说不到关键点上,不管怎样,都得感谢大家的关注与热情回复,所以本人将Linux Debian 发行版发行代号buster的无盘启动,其启动方式为,经由http加载基础与虚拟内存文件系统组成联合文件系统(overlay)的启动方法,自定义脚本贴出来,希望对大家有点帮助。谢谢



  1. #Write by youlianpc.com
  2. #to use overlay with get squashfs from http
  3. #Use general mapping functions
  4. . /scripts/functions
  5. ipconfig `ifconfig -a|head -n 1|awk '{print $1}'`
  6. #Load related kernel modules
  7. modprobe overlay
  8. modprobe squashfs
  9. modprobe tmpfs
  10. #Setup overlay base directory
  11. mkdir -p /overlay
  12. mount -t tmpfs tmpfs /overlay -o size=90%
  13. #Setup overlay mapping directories
  14. mkdir -p /overlay/lower
  15. mkdir -p /overlay/upper
  16. mkdir -p /overlay/work
  17. #Recieve squashfs image and mount
  18. for x in $(cat /proc/cmdline); do
  19.     case $x in
  20.         sqimage=*)
  21.     esac
  22. done
  23. for x in $(cat /proc/cmdline); do
  24.     case $x in
  25.         squrl=*)
  26.     esac
  27. done
  28. echo "The Squashfs Root Files is $squrl/$sqimage"
  29. echo "Please wait wait wait loading !!!"
  30. wget $squrl/$sqimage
  31. if [ $? != 0 ] ; then
  32.   msg1="Get the  squashfs base image failed. Please change a small image or add physics memory.  "
  33.   msg2="The system will reboot on 10s "
  34.   echo -e "\033[1;41;33m ${msg1} \033[0m"
  35.   echo -e "\033[1;41;33m ${msg2} \033[0m"
  36.   sleep 10
  37.   reboot -f
  38. fi
  39. mount -t squashfs $sqimage /overlay/lower
  40. #Mount overlay
  41. mount -t overlay overlay /root -o lowerdir=/overlay/lower,upperdir=/overlay/upper,workdir=/overlay/work
复制代码

[/code]

外网直接启动效果
http://bbs.wuyou.net/forum.php?m ... ge%3D1&mobile=2


基础映像需要小于物理内存50%的问题,已经找到原因,顺利解决了。回过头来看,真是粗心大意。原来是目标位置空间不足的问题引起来的,真是”灯下黑“

评分

参与人数 2无忧币 +10 收起 理由
freesoft00 + 5
cckp + 5 很给力!

查看全部评分

2#
发表于 2019-8-17 14:02:14 | 只看该作者
关注下overlay,学习了

点评

本地或网络安装好deiban,清理,安装相应的软件,再将根文件系统用squashfs压制,内核及映像系统准备好,放入IPXE启动环境,写好菜单就可以工作了  详情 回复 发表于 2019-8-17 17:25
回复

使用道具 举报

3#
发表于 2019-8-17 14:17:36 | 只看该作者
不知道咋改

点评

本地或网络安装好deiban,清理,安装相应的软件,再将根文件系统用squashfs压制,内核及映像系统准备好,放入IPXE启动环境,写好菜单就可以工作了  详情 回复 发表于 2019-8-17 17:26
回复

使用道具 举报

4#
发表于 2019-8-17 17:16:46 | 只看该作者
标记,有机会试一试
回复

使用道具 举报

5#
 楼主| 发表于 2019-8-17 17:25:23 | 只看该作者
本帖最后由 友联电脑 于 2019-8-17 17:28 编辑

盖楼就是继续发贴的动力不是,
回复

使用道具 举报

6#
 楼主| 发表于 2019-8-17 17:26:24 | 只看该作者

本地或网络安装好deiban,清理,安装相应的软件,再将根文件系统用squashfs压制,内核及映像系统准备好,放入IPXE启动环境,写好菜单就可以工作了
回复

使用道具 举报

7#
发表于 2019-8-17 19:45:58 | 只看该作者
你這種加載的方式,linux預設本來就是用overlay的了。
跟本無需要再另行設定或使用

点评

不知哪里可以下载,如果有地址,麻烦告诉我一下,能省不少事。谢谢  详情 回复 发表于 2019-8-17 22:25
你是说随便下载一个原版的解开就能这么启? 一直想网启安卓。。  详情 回复 发表于 2019-8-17 20:20
回复

使用道具 举报

8#
发表于 2019-8-17 20:20:33 | 只看该作者
hkkitlee 发表于 2019-8-17 19:45
你這種加載的方式,linux預設本來就是用overlay的了。
跟本無需要再另行設定或使用

你是说随便下载一个原版的解开就能这么启?
一直想网启安卓。。

点评

overlay , 是  详情 回复 发表于 2019-8-17 20:59
回复

使用道具 举报

9#
发表于 2019-8-17 20:59:01 | 只看该作者
江南一根葱 发表于 2019-8-17 20:20
你是说随便下载一个原版的解开就能这么启?
一直想网启安卓。。

overlay , 是

点评

启好后装完软件能不能做到像win的ramos一样“热备份”到服务器的Ftp上之类的。  详情 回复 发表于 2019-8-17 22:07
回复

使用道具 举报

10#
发表于 2019-8-17 22:07:49 | 只看该作者

启好后装完软件能不能做到像win的ramos一样“热备份”到服务器的Ftp上之类的。

点评

我「使用方式」有些不同 1是客戶機啟動時才安裝我需要的軟件。從不喜歡預壓一堆不一定有用沒用的軟件。 2這只會拖慢啟動進度[安裝越多就越大],啟動後負載及運算能力只會更糟糕。 3預壓的軟件又會「過期」,  详情 回复 发表于 2019-8-18 21:26
是有这个想法,根据情况,再慢慢折腾折腾  详情 回复 发表于 2019-8-17 22:27
回复

使用道具 举报

11#
 楼主| 发表于 2019-8-17 22:25:15 | 只看该作者
hkkitlee 发表于 2019-8-17 19:45
你這種加載的方式,linux預設本來就是用overlay的了。
跟本無需要再另行設定或使用

不知哪里可以下载,如果有地址,麻烦告诉我一下,能省不少事。谢谢

点评

不用下載,是你啟動的方式 是不用再[設定]  详情 回复 发表于 2019-8-17 22:58
回复

使用道具 举报

12#
 楼主| 发表于 2019-8-17 22:27:56 | 只看该作者
本帖最后由 友联电脑 于 2019-8-17 22:50 编辑
江南一根葱 发表于 2019-8-17 22:07
启好后装完软件能不能做到像win的ramos一样“热备份”到服务器的Ftp上之类的。


是有这个想法,根据情况,再慢慢折腾折腾,如果是想在基础系统上统一装点东西,只要用将其展开,安装后重新压制一下即可。每次都保存,现在还没想好方案
回复

使用道具 举报

13#
发表于 2019-8-17 22:58:37 | 只看该作者
友联电脑 发表于 2019-8-17 22:25
不知哪里可以下载,如果有地址,麻烦告诉我一下,能省不少事。谢谢

不用下載,是你啟動的方式
是不用再[設定]

点评

如果有空,不妨写几笔,看看你的菜单写法和思路,也好也学习学习一下。谢谢  详情 回复 发表于 2019-8-18 08:02
回复

使用道具 举报

14#
 楼主| 发表于 2019-8-18 08:02:12 | 只看该作者
hkkitlee 发表于 2019-8-17 22:58
不用下載,是你啟動的方式
是不用再[設定]

如果有空,不妨写几笔,看看你的菜单写法和思路,也好也学习学习一下。谢谢

点评

我思路是: 既然啟動影像不能超出內存一半。 會否是overlay令啟動的影像「重複」了一倍呢?  详情 回复 发表于 2019-8-18 20:03
回复

使用道具 举报

15#
发表于 2019-8-18 20:03:49 | 只看该作者
友联电脑 发表于 2019-8-18 08:02
如果有空,不妨写几笔,看看你的菜单写法和思路,也好也学习学习一下。谢谢

我思路是:

既然啟動影像不能超出內存一半。

會否是overlay令啟動的影像「重複」了一倍呢?

点评

没有这个可能,绝不重复的  详情 回复 发表于 2019-8-18 21:52
回复

使用道具 举报

16#
发表于 2019-8-18 20:04:59 | 只看该作者
楼主是网络加载的三个文件不

点评

是的,内核,映像,基础系统squashfs  详情 回复 发表于 2019-8-18 21:27
回复

使用道具 举报

17#
发表于 2019-8-18 21:26:08 | 只看该作者
江南一根葱 发表于 2019-8-17 22:07
启好后装完软件能不能做到像win的ramos一样“热备份”到服务器的Ftp上之类的。

我「使用方式」有些不同

1是客戶機啟動時才安裝我需要的軟件。從不喜歡預壓一堆不一定有用沒用的軟件。
2這只會拖慢啟動進度[安裝越多就越大],啟動後負載及運算能力只會更糟糕。
3預壓的軟件又會「過期」,更新那就要從新預壓。又慢又麻煩。

点评

目标用途不一样,我是计划用这个系统满足正常的日常用应,娱乐,办公,附带一些基础应用平台,像十几M的一个,不是不好,那加载运行自然是很快的,就是不知道兼容性如何,对软件的支持能力又如何,又或是根本无所谓  详情 回复 发表于 2019-8-18 21:49
回复

使用道具 举报

18#
 楼主| 发表于 2019-8-18 21:27:08 | 只看该作者
江南一根葱 发表于 2019-8-18 20:04
楼主是网络加载的三个文件不

是的,内核,映像,基础系统squashfs
回复

使用道具 举报

19#
 楼主| 发表于 2019-8-18 21:49:47 | 只看该作者
hkkitlee 发表于 2019-8-18 21:26
我「使用方式」有些不同

1是客戶機啟動時才安裝我需要的軟件。從不喜歡預壓一堆不一定有用沒用的軟件 ...

目标用途不一样,我是计划用这个系统满足正常的日常用应,娱乐,办公,附带一些基础应用平台,像十几M的一个,不是不好,那加载运行自然是很快的,就是不知道兼容性如何,对软件的支持能力又如何,又或是根本无所谓。等桌面系统合适后,下一步我还想让它把docker跑起来同时能自动注册管理平台,呵呵,说的有些多了

点评

我的可網啟linux不止得一個16MB TC 還有你正在折騰當中的Debian buster及 Centos/Fedora,kali,等等  详情 回复 发表于 2019-8-18 22:06
回复

使用道具 举报

20#
 楼主| 发表于 2019-8-18 21:52:25 | 只看该作者
hkkitlee 发表于 2019-8-18 20:03
我思路是:

既然啟動影像不能超出內存一半。

没有这个可能,绝不重复的

点评

那沒關係喇  详情 回复 发表于 2019-8-18 22:24
回复

使用道具 举报

21#
发表于 2019-8-18 22:06:37 | 只看该作者
友联电脑 发表于 2019-8-18 21:49
目标用途不一样,我是计划用这个系统满足正常的日常用应,娱乐,办公,附带一些基础应用平台,像十几M的 ...

我的可網啟linux不止得一個16MB TC

還有你正在折騰當中的Debian buster及
Centos/Fedora,kali,等等

点评

嗯嗯,好吧。给你看看我目前的网启应用。这是legacy用的最多的部分 [attachimg]399133[/attachimg] [attachimg]399133[/attachimg] 网线在手,引导无忧  详情 回复 发表于 2019-8-18 22:13
回复

使用道具 举报

22#
 楼主| 发表于 2019-8-18 22:13:32 | 只看该作者
本帖最后由 友联电脑 于 2019-8-18 22:20 编辑
hkkitlee 发表于 2019-8-18 22:06
我的可網啟linux不止得一個16MB TC

還有你正在折騰當中的Debian buster及


嗯嗯,好吧。给你看看我目前的网启应用。这是legacy用的最多的部分




网线在手,引导无忧

USB上的项目都停留在好多年前,基本没有更新了。像这些东西跨互联网引导,只是网速非对称,要不稍加调整,就可全线引导,好了不早了,回了。谢谢

屏幕快照 2019-08-18 下午10.10.07.png (17.38 KB, 下载次数: 173)

屏幕快照 2019-08-18 下午10.10.07.png
回复

使用道具 举报

23#
发表于 2019-8-18 22:24:45 | 只看该作者
本帖最后由 hkkitlee 于 2019-8-18 22:51 编辑
友联电脑 发表于 2019-8-18 21:52
没有这个可能,绝不重复的


那沒關係喇

看你啟動ipxe寫法是否uefi / bios 需要分開寫呢?

点评

是的,是分离的。系统会根据终端的情况,发送相应的启动文件及菜单  详情 回复 发表于 2019-8-18 23:05
回复

使用道具 举报

24#
 楼主| 发表于 2019-8-18 23:05:57 | 只看该作者
hkkitlee 发表于 2019-8-18 22:24
那沒關係喇

看你啟動ipxe寫法是否uefi / bios 需要分開寫呢?


是的,是分离的。系统会根据终端的情况,发送相应的启动文件及菜单,无需人工切换

点评

明白的。 可能是我對自己要求過高吧。  详情 回复 发表于 2019-8-21 06:17
回复

使用道具 举报

25#
发表于 2019-8-21 06:17:10 | 只看该作者
本帖最后由 hkkitlee 于 2019-8-21 06:27 编辑
友联电脑 发表于 2019-8-18 23:05
是的,是分离的。系统会根据终端的情况,发送相应的启动文件及菜单,无需人工切换


明白的。

可能只是我對自己要求過高吧。除非是win98/msdos之類的系統,所以才有此一問。

iPXE腳本是可以兼容uefi/bios,除非想啟動的操作系統不支援。
那麼腳本就可以盡量精簡,減少代碼體積及易於排錯。

点评

要求过高,不知道是什么情况。能再描述多一些吗,这个问题很感兴趣,我指的分离,是服务器根据客户端的启动模式,发送相应的启动文件,如LEGACY启动,发送legacy的启动文件,加载legacy的菜单,pxe over ipv4的uefi  详情 回复 发表于 2019-8-21 09:41
回复

使用道具 举报

26#
 楼主| 发表于 2019-8-21 09:41:06 | 只看该作者
hkkitlee 发表于 2019-8-21 06:17
明白的。

可能只是我對自己要求過高吧。除非是win98/msdos之類的系統,所以才有此一問。

要求过高,不知道是什么情况。能再描述多一些吗,这个问题很感兴趣,我指的分离,是服务器根据客户端的启动模式,发送相应的启动文件,如LEGACY启动,发送legacy的启动文件,加载legacy的菜单,pxe over ipv4的uefi模式,自动发送相应的uefi启动并加载相应的menu。不知道你是怎么做的,谢谢你的回复

点评

那就拿你的腳本: debian: kernel ${boot-server}debian/ vmlinuz-buster initrd=initrd.img-overlay text vga=normal ip=dhcp hooks=filesystem fetch=${boot-server}debian/squashfs-gnome initrd ${boot-ser  详情 回复 发表于 2019-8-21 10:37
回复

使用道具 举报

27#
发表于 2019-8-21 10:37:53 | 只看该作者
友联电脑 发表于 2019-8-21 09:41
要求过高,不知道是什么情况。能再描述多一些吗,这个问题很感兴趣,我指的分离,是服务器根据客户端的启 ...

那就拿你的腳本:

debian:
kernel ${boot-server}debian/ vmlinuz-buster initrd=initrd.img-overlay text vga=normal ip=dhcp hooks=filesystem fetch=${boot-server}debian/squashfs-gnome
initrd ${boot-server}/debian/initrd.img-overlay
boot

大概這樣寫就能bios/uefi雙啟,前提是啟動的系統支持。當然需要核對一下你實際路徑。

另外你解決了內存是系統兩倍的問題嗎?

点评

PXE第一步引导时,服务器如何区分终端是什么方式启动,你在这个地方进行uefi和legacy的识别,会不会有点晚了。服务器该如何响应,legacy的pxe引导以及uefi的pxe引导,这里你是如何处理。内存的问题还没有解决,先放  详情 回复 发表于 2019-8-21 12:07
回复

使用道具 举报

28#
 楼主| 发表于 2019-8-21 12:07:31 | 只看该作者
hkkitlee 发表于 2019-8-21 10:37
那就拿你的腳本:

debian:

PXE第一步引导时,服务器如何区分终端是什么方式启动,你在这个地方进行uefi和legacy的识别,会不会有点晚了。服务器该如何响应,legacy的pxe引导以及uefi的pxe引导,这里你是如何处理。内存的问题还没有解决,先放下了,我要它成功启动容器及虚拟化,在无盘的时候能够正常启动,桌面时才有这个问题,不带桌而的服务器用不着

点评

你誤會了。我是在說精簡iPXE的啟動腳本雙引導啟動;不是在說pxe server回報的架構可以相啟動。 ###iPXE腳本 一個腳本實現uefi/bios雙啟,減小了重疊的「啟動」代碼。 ###dhcp-option 客機經dhcp-option回報  详情 回复 发表于 2019-8-21 13:43
回复

使用道具 举报

29#
发表于 2019-8-21 13:39:19 | 只看该作者
bios和efi去共用一个ipxe的jio本貌似有点杂乱,刚合并,我就在考虑分开。。

点评

合并,将uefi和legacy引导菜单放在一起,真的没有必要,分开处理即简单又清爽,何乐而不为。我选择是从dhcp就开始分开,清爽多了  详情 回复 发表于 2019-8-21 17:30
那就「感覺良好」就好了 我的出發點是:分開都是在寫一堆「差不多、重複」的代碼。必刪減降低體積與載入時間。  详情 回复 发表于 2019-8-21 14:28
回复

使用道具 举报

30#
发表于 2019-8-21 13:43:41 | 只看该作者
本帖最后由 hkkitlee 于 2019-8-21 14:43 编辑
友联电脑 发表于 2019-8-21 12:07
PXE第一步引导时,服务器如何区分终端是什么方式启动,你在这个地方进行uefi和legacy的识别,会不会有点 ...


你誤會了。我是在說精簡iPXE的啟動腳本雙引導啟動;不是在說pxe server回報的架構可以雙啟動。

###iPXE腳本
一個腳本實現uefi/bios雙啟,減小了重疊的「啟動」代碼。

###dhcp-option
客機經dhcp-option回報自身架構給dhcp server,足以能判斷是什麼機器,減少不必要iPXE中「判斷式」代碼或「雙菜單」的出現。

回應你之前內存的問題:
可否看看你設的fstab。
其實我都頗為肯定是因為你「設定」overlay的問題,才導致你有必要內存是系統的兩倍。
或者你可以看看官網有範例參考。都是沒有你這個問題。
只是你當時說得太肯定,我又沒時間打字。

我的最小啟動是內存比系統影像大400MB;一樣是buster gnome,內存2.5g,核心連squashfs己有2.1G多

点评

fstab是空的,什么也没有。可以说下你的启动过程吗?特别是squashfs的取得方式,还有,如果启动后断开网络,系统可否正常运转,这很关键。  详情 回复 发表于 2019-8-21 17:43
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-20 06:20

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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