溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Diskimage-builder的作用是什么

發(fā)布時(shí)間:2021-06-29 09:46:04 來源:億速云 閱讀:215 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要介紹“Diskimage-builder的作用是什么”,在日常操作中,相信很多人在Diskimage-builder的作用是什么問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Diskimage-builder的作用是什么”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

DIB階段

root.d

  • 創(chuàng)建或適配初始化的 root 文件系統(tǒng)環(huán)境。這個(gè)一般是發(fā)行版內(nèi)置的或直接建立在一個(gè)現(xiàn)有的 image 上的。

  • 在一個(gè)構(gòu)建過程中,只能有一個(gè) element 使用 root.d,除非能夠非常仔細(xì)地適配由其它 elements 構(gòu)建出來的上下文而不會(huì)盲目地覆蓋掉其它的 elements 的 root.d。

  • 運(yùn)行:在 chroot 外。

extra-data.d

  • 在構(gòu)建 image 過程中從 host 環(huán)境拉取數(shù)據(jù),這里應(yīng)該把所有數(shù)據(jù)(比如說 SSH keys, http proxy 配置之類的)復(fù)制到 $TMP_HOOKS_PATH.

  • 運(yùn)行:chroot 外

pre-install.d

  • 在 chroot 內(nèi)運(yùn)行代碼,這個(gè)運(yùn)行是在安裝 packages 之前的,所以非常適合添加 apt 源。

  • 運(yùn)行:chroot 內(nèi)

install.d

  • 在 pre-install.d 之后運(yùn)行,同樣在 chroot 內(nèi)。這里非常適合用來安裝 packages,鏈入配置管理工具或做一些特定的 image 操作。

  • 運(yùn)行:chroot 內(nèi)

post-install.d

  • 在 chroot 內(nèi)運(yùn)行代碼。這里非常適合用來處理一些想要在安裝完系統(tǒng)/軟件和第一次啟動(dòng)鏡像之間的任務(wù)。一些使用示例:

  • 運(yùn)行 chkconfig 以 disable 掉不需要的服務(wù),清掉 package manager 遺留下來的緩存以減少 image 體積。

  • 運(yùn)行:chroot 內(nèi)

block-device.d

  • 自定義 image 所在的塊設(shè)備(比如說分區(qū))。在目標(biāo)樹準(zhǔn)備就緒之后運(yùn)行,但在 cleanup.d 之前。

  • 運(yùn)行:chroot 外

finalise.d

  • 對(duì) root 文件系統(tǒng)做一些最后的調(diào)試工作。在 chroot 內(nèi)運(yùn)行,并且在 root 文件系統(tǒng)被復(fù)制到掛載出來的文件系統(tǒng)之后。這是一個(gè)適合用來重置 SELinux metadata,安裝 grub 啟動(dòng)加載之類操作的地方。

  • 由于這里的操作是在最終的 image 內(nèi)發(fā)生的,所以限制這里的操作,只做一些必須修改文件系統(tǒng)的 metadata 和 image 的操作是很重要的。對(duì)大多數(shù)操作來說,更應(yīng)該在 preferred 內(nèi)進(jìn)行。

  • 運(yùn)行:chroot 內(nèi)

cleanup.d

  • 清理 root 文件系統(tǒng)內(nèi)容。

  • 運(yùn)行:chroot 外

    注意:各種階段,(root,extra-data,pre_install,install,post_install,block-device,fianlise)除了chroot中和chroot外沒有任何區(qū)別,只是用他們來規(guī)范操作(當(dāng)然意義是不同的,但是運(yùn)行的流程是相同的).

DIB邏輯

啟動(dòng)流程

  • BIOS,硬件自檢,然后交給第一個(gè)存儲(chǔ)設(shè)備(硬盤,網(wǎng)絡(luò)…)

  • MBR,MBR主要的作用是描述磁盤和找到boot(MBR代碼詳解)(GRUB 不是通過文件系統(tǒng)來找內(nèi)核文件的,因?yàn)檫@時(shí)候內(nèi)核還沒有啟動(dòng)所以也不存在什么文件系統(tǒng),而是直接訪問硬盤的第1個(gè)硬盤第1個(gè)分區(qū)(MBR里面存在分區(qū)表)的來找到內(nèi)核文件)

  • BOOT loader,現(xiàn)在的boot loader主要有兩種grub和extlinux,boot loader的作用是把磁盤中的內(nèi)核文件加載到內(nèi)存匯中.在DIB中的bootloader元素,中bootloader安裝腳本是一個(gè)非常好的bootloader安裝腳本,幾乎在所有的linux發(fā)行版上都可以用這個(gè)腳本進(jìn)行bootloader的安裝

  • 內(nèi)核加載程序,這里也有多種,以前用的是init,現(xiàn)在很多l(xiāng)inux系統(tǒng)使用systemd,但是同時(shí)也保留init的兼容.
    探測(cè)硬件
    加載驅(qū)動(dòng)
    掛載根文件系統(tǒng)
    執(zhí)行第一個(gè)程序/sbin/init

鏡像本質(zhì)

鏡像就是一塊存儲(chǔ),里面保留了從分區(qū)表到文件系統(tǒng)到文件內(nèi)容的所有數(shù)據(jù).大致的組成是這樣的: MBR,文件系統(tǒng)的格式,比如inod

分區(qū)表

分區(qū)表保存在MBR中,它占據(jù)了磁盤的前512個(gè)字節(jié):

  • 001-440 bytes 由 BIOS 啟動(dòng)的 MBR 啟動(dòng)代碼

  • 441-446 bytes MBR 硬盤簽名

  • 447-510 bytes 分區(qū)表 (主分區(qū)和擴(kuò)展分區(qū),而非邏輯分區(qū))

  • 511-512 bytes MBR 啟動(dòng)簽名 0xAA55.

到此,關(guān)于“Diskimage-builder的作用是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI