中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

配置overlay(overlayfs)根目錄掛載構建deb

發布時間:2020-02-27 09:47:21 來源:網絡 閱讀:10797 作者:btvnlue 欄目:系統運維


據wikipedia描述overlayfs在2014年融入linux內核,其輕量和易用特性已在openwrt中應用,但在debian發行版本中還沒有直接使用overlayfs掛載根目錄的啟動選項。增加啟動選項需對啟動initrd進行相應改造,debian的initrt腳本已經預留了應用接口,使得應用overlayfs和無盤(或簡盤)工作變得相對簡單。


構建無盤工作站使用

TFTP+PXE啟動服務器 <=== QEMU客戶端

進行改造和測試


因需要在已安裝系統中改造initrd,首先分析mkinitramfs腳本,可以得到啟動腳本模板init使用的是/usr/share/initramfs-tools/init,進而分析該init腳本。

init腳本中掛載根目錄片段

:
:
log_begin_msg "Mounting root file system"
# Always load local and nfs (since these might be needed for /etc or
# /usr, irrespective of the boot script used to mount the rootfs).
. /scripts/local
. /scripts/nfs
. /scripts/${BOOT}
parse_numeric ${ROOT}
maybe_break mountroot
mount_top
mount_premount
mountroot
log_end_msg
:
:

由此,在啟動服務器上構建TFTP和PXE啟動環境,配置PXE腳本啟動部分可以使用BOOT參數傳遞應用overlay

在scripts子目錄下需要增加overlay腳本文件,其中定義mountroot函數。

無盤工作使用tmpfs內存文件作為根目錄。

:
:

#Use general mapping functions
. /scripts/functions

#Load related kernel modules
modprobe overlay
modprobe squashfs
modprobe tmpfs

#Setup overlay base directory
mkdir –p /overlay
mount –t tmpfs tmpfs /overlay –o size=4G
:
:

overlay需要底層根目錄作為只讀的基礎結構,在openwrt中使用flash區塊,而在無盤環境內可以考慮多種選擇,直接使用initrt的根目錄,nfs掛載,本地squash鏡像,遠程squash鏡像。

為保證無盤環境,而因initrd鏡像的系統功能是不完整的,因debian的initrt環境下已有tftp客戶端,在這里使用遠程squash鏡像方式。

(在單網卡環境下,nfs根掛載和overlayfs存在耦合性問題,并造成操作系統網絡連接和應用系統存在配置干擾,造成系統網絡不完整或不穩定,如需nfs根掛載,需使用至少雙網卡方式,減少基礎系統連接和應用網絡的依賴和影響。因此種方式增加配置復雜程度且與overlay主題無關,不選擇使用)

可以將squash鏡像放置在pxe的tftp服務器上,debian(stretch)的最簡安裝系統后大約使用1.5G硬盤,squash鏡像可以壓縮到200M,在100M網絡環境下傳輸30s左右。

補充后續腳本

:
:

#Setup overlay mapping directories
mkdir -p /overlay/lower
mkdir -p /overlay/upper
mkdir -p /overlay/work
:
:
#Recieve squash image and mount
tftp –g –l /overlay/$SQUASHIMAGE –r $REMOTESQUASHIMAGE $PXEHOST
mount –t squashfs /overlay/$SQUASHIMAGE /overlay/lower
:
:

debian的initrd環境中使用/root作為根掛載的準備目錄,后續/dev,/proc,/sys等系統配置已有相應腳本,所以僅在overlay腳本中映射掛載/root即可

:
:
mount –t overlay overlay /root –o lowerdir=/overlay/lower,upperdir=/overlay/upper,workdir=/overlay/work
:
:


問題記錄:

- 制作squash鏡像的時候需要將原來系統的/etc/fstab的根目錄和swap條目刪除,stretch版本系統使用systemd,雖不影響使用,缺失映射盤會有很長超時等待

- 制作initrd鏡像時,如需對鏡像內容確認,可以恢復至本地文件夾,但最近版initrd使用了合成模式(不太明白原因),導致如果單純做cpio的輸出僅包含kernel/x86/microcode下面的內容,使用合成命令(cpio -id ; zcat | cpio -id) < ../$OUTFILE可以解析所有內容

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镇巴县| 图木舒克市| 密云县| 沙洋县| 开江县| 晴隆县| 西华县| 湖州市| 古交市| 花垣县| 怀仁县| 天水市| 汝城县| 隆化县| 南江县| 酉阳| 厦门市| 蒙自县| 牙克石市| 宜城市| 犍为县| 黔西县| 伽师县| 博客| 赤峰市| 商都县| 白城市| 广昌县| 登封市| 景德镇市| 沁阳市| 余干县| 沧州市| 定边县| 炎陵县| 鱼台县| 扬州市| 江达县| 虞城县| 包头市| 大埔县|