請問 Ubuntu Server 22.04 啟動程序 [論壇 - 新手村]
正在瀏覽:
2 名遊客
請問 Ubuntu Server 22.04 啟動程序 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2022/7/27 14:06 所屬群組:
已註冊使用者 等級: 2
HP : 0 / 31
![]() |
請問 Ubuntu Server 22.04 啟動程序
查了一下 init 之後在 /etc下不曉得是哪一個取代 init 或是 inittab 而 rc也都是目錄檔 init --> /lib/systemd/systemd 也沒有看到對應的 /etc/systemd 請問這個要如何 tracking 或是開機怎麼看到流程的 log還是? 或是 Ubuntu Doc哪邊有明確的說明, 請再告知, thanks.
2022/7/27 16:01
|
||||||||||
![]() |
回覆: 請問 Ubuntu Server 22.04 啟動程序 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
我目前沒有很熟悉 Systemd,只有簡略的概念,
所以只憑我目前模糊的印象,貼給你相關的連結或關鍵字, 讓您有個探索的起點 * $ man 1 init * 關鍵字查詢: systemd debian * 關鍵字查詢: systemd ubuntu * 關鍵字查詢: systemd archlinux * 維基百科 / Systemd * 維基百科 / init 以前在這個論壇有整理一些連結,放在「Ubuntu 文件資源 / [索引] 開機流程」 ================================================================================ 執行
顯示
================================================================================ 執行
顯示
================================================================================ 我粗略了解到的是,Systemd 是用 C 語言寫成的,不是以前單純使用「Shell Script」的方式來操作。 所以要建議您去探索的方向是「Systemd」的操作方式。 ================================================================================ 以上提供參考 報告完畢 ![]()
2022/7/27 17:14
|
||||||||||
![]() |
回覆: 請問 Ubuntu Server 22.04 啟動程序 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2022/7/27 14:06 所屬群組:
已註冊使用者 等級: 2
HP : 0 / 31
![]() |
謝謝分享
我想知道的大概是類似這方面的, 先前觀念大概在 /boot kernel 還是可以想像出來,硬跟軟之間應該還是會有位址轉換概念 https://www.796t.com/article.php?id=237300 https://dywang.csie.cyut.edu.tw/dywang/linuxSystem/node81.html 如果以這樣看來, 就是目前的 init會變成 systemd, 也就是說 kernel 載入完成之後的第一個起始的程式是到 systmed 裡面的 system-initctl 嗎??? 這樣似乎開機程序過程還是串不起來, 因為我本身不是做這方面, 但是用邏輯程序來看, 應該都是可以相互去 call的概念.....
2022/7/28 13:56
|
||||||||||
![]() |
回覆: 請問 Ubuntu Server 22.04 啟動程序 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
以下就我自己目前理解到的來說明,不見得正確,提供您參考
大致上,開機過程,執行到「/sbin/init」這一個階段,這您應該也理解, 而我在上面「#2」提到的, ================================================================================ 執行
顯示
也就是開機過程執行「/sbin/init」,其實就是執行「/lib/systemd/systemd」 爾後的流程就會遵循「systemd」設計的規範, 所以要請您先把以前學的規則暫時忘掉,先熟悉「systemd」的操作規則。 * 維基百科 / init ================================================================================ 接著我把以前在這個論壇有整理一些連結,放在「Ubuntu 文件資源 / [索引] 開機流程」 我把一些連結貼過來,提供您參考,讓您有個探索的起點。 * Linux systemd 系統服務管理基礎教學與範例 * Linux 建立自訂 Systemd 服務教學與範例 * Node.js 應用程式整合 Systemd 系統服務教學 * Linux 守護進程的啟動方法 * Systemd 入門教程:命令篇 * Systemd 入門教程:實戰篇 * Node 應用的 Systemd 啟動 ================================================================================ 另外補充一些參考連結 * Systemd 應用 * Debian Wiki / systemd * Arch Wiki / systemd ================================================================================ 以上提供參考 ![]()
2022/7/28 15:10
|
||||||||||
![]() |
回覆: 請問 Ubuntu Server 22.04 啟動程序 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
2022/7/28 15:23
|
||||||||||
![]() |
回覆: 請問 Ubuntu Server 22.04 啟動程序 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
================================================================================
執行下面指令,就會顯示「Package: systemd」安裝那些檔案在系統上。 也就是類似「網頁上」列出的檔案列表
顯示
================================================================================ 執行
顯示
================================================================================
2022/7/28 15:27
|
||||||||||
![]() |
回覆: 請問 Ubuntu Server 22.04 啟動程序 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
================================================================================
執行下面指令
顯示
表示「/sbin/init」這個檔案,是來自於「Package: systemd-sysv」 ================================================================================ 執行下面指令,查詢「Package: systemd-sysv」,安裝哪些檔案在系統上
顯示
================================================================================
2022/7/28 15:34
|
||||||||||
![]() |
回覆: 請問 Ubuntu Server 22.04 啟動程序 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2022/7/27 14:06 所屬群組:
已註冊使用者 等級: 2
HP : 0 / 31
![]() |
謝謝回覆, 看來很多訊息, 您說的部份會在花時間 study一下
大致上,開機過程,執行到「/sbin/init」這一個階段,這您應該也理解 ==> 這邊還不是很清楚, 目前頭腦理解到的只有在 MBR之後, 選擇到 Linux之後, 就會進入到 /boot下的 vmlinuz; 在 /boot 下兩個主要檔案, 一個是 vmlinuz, 一個是 initrd.img 不確定在啟動時候會指向以哪個為主 1.不確定自己這樣的說法是否正確,因為以系統概念應該是 sequencial的方式, 即便是 concurrent, 也應該能夠 trace back 2.先前 /boot 後載入 kernel, https://dywang.csie.cyut.edu.tw/dywang/linuxSystem/node81.html 這邊文章有提到 載入後第一支程式為 init, 所以 PID是 1這個說法也合理 但是在目前的 Ubuntu 是不是就是 /sbin/init 為 PID的 1 不確定是不是這樣理解, 因為 /sbin/init 是二進位, 所以不太知道要怎麼去 trace back回去, 接下來的程序 call ......大概這就是目前我開始卡住的地方 https://www.796t.com/article.php?id=237300 在這一篇文章提及 核心被載入後,第一個執行的程式便是/sbin/init,該檔案會讀取/etc/inittab檔案 ==> 所以對應到 Ubuntu是哪一個檔案? ==> 所以您解釋的是這一段的過程嗎? file /sbin/init --> /lin/systemd/systemd --> /lib/systemd/systemd: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=968ffe3f6622fa1919d1f1f119041e469ae98694, for GNU/Linux 3.2.0, stripped ==> 這邊就看不懂是跳到哪裡去 >_< 因為目前很多訊息片段要串起來, 也要邏輯性判斷, 才能比較正確理解
2022/7/29 11:36
|
||||||||||
![]() |
回覆: 請問 Ubuntu Server 22.04 啟動程序 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
收到,我覺得我好像讓您更混亂了。
整個開機流程,我也不是每個階段,都有很完整的了解, 我只有理解大概的脈落, 有些階段我也還暫時擱著,還沒有深入去探索。 所以我也沒有完整的論述,可以回覆您, 就算我知道,這要寫起來,可能是一大串。 不過,您別急, 以我自己的經驗是從一些片段,一些片段理解起, 慢慢就會拼湊出全貌。 所以我會建議您先去看我在「#4」列的參考連結, 也許當您理解那些連結所講的內容,您的疑問,也許就自然減少了。 ![]() 下面回覆,我以我了解到的,針對你的疑問來回覆。 我會分段回覆,所以待續...
2022/7/29 14:30
|
||||||||||
![]() |
回覆: 請問 Ubuntu Server 22.04 啟動程序 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
Jimmy.W 寫到: 關於「vmlinuz」,我沒去深究,我並不懂。 關於「initrd.img」,若您有興趣想要探索的話, 可以參考我在另一個討論串「#5 - 回覆: 夾帶 microcode 的 initrd 解法」提到的 透過「initramfs-extract」將「/boot/initrd.img」解開, 您就可以「探索」其中的「init」,這個檔案就是「Shell Script」。 您可以直接用純文字編輯打開它,並且閱讀它裡面的內容 待續...
2022/7/29 14:50
|
||||||||||
![]() |
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.