FreeBSD的boot0階段介紹(轉)
FreeBSD的boot0階段介紹(轉)[@more@]【導讀】本文介紹了FreeBSD系統啟動的第一階段。
讓我們看一下檔案/boot/boot0。這是一個僅512位元組的小檔案。如果在FreeBSD安裝過程中選擇“bootmanager”,這個檔案中的內容將被寫入硬碟MBR 如前所述,INT 0x19指令裝載MBR,也就是boot0的內容,至記憶體地址0x7c00。再看檔案sys/boot/i386/boot0/boot0.s,可以猜想這裡面發生了什麼 - 這是引導管理器,一段由 Robert Nordier書寫的令人起敬的程式片段。
MBR裡,也就是boot0裡,從偏移量0x1be開始有一個特殊的結構,稱為分割槽表。其中有4條記錄(稱為分割槽記錄),每條記錄16位元組。分割槽記錄表示硬碟如何被劃分,在FreeBSD的術語中,這被稱為slice(d)。16位元組中有一個標誌位元組決定這個分割槽是否可引導。有僅只能有一個分割槽可設定這一標誌。否則,boot0的程式碼將拒絕繼續執行。
一個分割槽記錄有如下域:
*1位元組 檔案系統型別
*1位元組 可引導標誌
*6位元組 CHS格式描述符
*8位元組 LBA格式描述符
一個分割槽記錄描述符包含某一分割槽在硬碟上的確切位置資訊。LBA和CHS兩種描述符指示相同的資訊,但是指示方式有所不同:LBA (邏輯塊定址,Logical Block Addressing)指示分割槽的起始扇區和分割槽長度,而CHS(柱面 磁頭扇區)指示首扇區和末扇區。 引導管理器掃描分割槽表,並在螢幕上顯示選單,以便使用者可以選擇用於引導的磁碟和分割槽。在鍵盤上按下相應的鍵後,boot0進行如下動作:
*標記選中的分割槽為可引導,清除以前的可引導標誌
*記住本次選擇的分割槽以備下次引導時作為預設項
*裝載選中分割槽的第一個扇區,並跳轉執行之
什麼資料會存在於一個可引導扇區(這裡指FreeBSD扇區)的第一扇區裡呢?正如你已經猜到的,那就是boot2。
讓我們看一下檔案/boot/boot0。這是一個僅512位元組的小檔案。如果在FreeBSD安裝過程中選擇“bootmanager”,這個檔案中的內容將被寫入硬碟MBR 如前所述,INT 0x19指令裝載MBR,也就是boot0的內容,至記憶體地址0x7c00。再看檔案sys/boot/i386/boot0/boot0.s,可以猜想這裡面發生了什麼 - 這是引導管理器,一段由 Robert Nordier書寫的令人起敬的程式片段。
MBR裡,也就是boot0裡,從偏移量0x1be開始有一個特殊的結構,稱為分割槽表。其中有4條記錄(稱為分割槽記錄),每條記錄16位元組。分割槽記錄表示硬碟如何被劃分,在FreeBSD的術語中,這被稱為slice(d)。16位元組中有一個標誌位元組決定這個分割槽是否可引導。有僅只能有一個分割槽可設定這一標誌。否則,boot0的程式碼將拒絕繼續執行。
一個分割槽記錄有如下域:
*1位元組 檔案系統型別
*1位元組 可引導標誌
*6位元組 CHS格式描述符
*8位元組 LBA格式描述符
一個分割槽記錄描述符包含某一分割槽在硬碟上的確切位置資訊。LBA和CHS兩種描述符指示相同的資訊,但是指示方式有所不同:LBA (邏輯塊定址,Logical Block Addressing)指示分割槽的起始扇區和分割槽長度,而CHS(柱面 磁頭扇區)指示首扇區和末扇區。 引導管理器掃描分割槽表,並在螢幕上顯示選單,以便使用者可以選擇用於引導的磁碟和分割槽。在鍵盤上按下相應的鍵後,boot0進行如下動作:
*標記選中的分割槽為可引導,清除以前的可引導標誌
*記住本次選擇的分割槽以備下次引導時作為預設項
*裝載選中分割槽的第一個扇區,並跳轉執行之
什麼資料會存在於一個可引導扇區(這裡指FreeBSD扇區)的第一扇區裡呢?正如你已經猜到的,那就是boot2。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-949202/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MyBatis執行流程的各階段介紹MyBatis
- MySQL事務提交的三個階段介紹MySql
- Spring Bean各階段生命週期的介紹SpringBean
- 簡單介紹資料庫技術發展階段!資料庫
- javascript高階函式的介紹JavaScript函式
- React 高階元件介紹React元件
- OpenCV進階---介紹SVMOpenCV
- Hadoop進階命令使用介紹Hadoop
- 組織級敏捷轉型的四個階段敏捷
- 【轉】恢復archivelog介紹Hive
- AUTONOMOUS TRANSACTION(自治事務)的介紹(轉)
- 「Oracle」Oracle高階查詢介紹Oracle
- 初學Java的5個階段,你在哪個階段?Java
- 人生的二階段。
- SONM最新路線圖介紹(轉)
- 【轉】jenkins外掛pipeline使用介紹Jenkins
- 從 RGB 到 HSV 的轉換詳細介紹
- 統一過程(UP)定義了初啟階段、精化階段、構建階段、移交階段和產生階段,每個階段以達到某個里程碑時結束,其中()的里程碑是生命週期架構。 A.初啟階段 B.精化階段 C.構建階段 D.移交階段架構
- stable diffusion ControlNet使用介紹與進階技巧
- AdGuard 最高階的(廣告攔截軟體)功能介紹
- FreeBSD on Raspberry PI root, freebsd account password
- Flume架構以及應用介紹[轉]架構
- 面試每日一題011:從新手階段到流失階段,遊戲的階段性目標是什麼?面試每日一題遊戲
- 【重溫基礎】JS中的常用高階函式介紹JS函式
- 強化階段
- 開發階段
- 階段測試
- FreeBSD Timeline
- Java的逐步發展階段!
- 編譯的各個階段編譯
- mybatis各階段的詳解MyBatis
- web前端的幾個階段Web前端
- 微雲視訊轉碼架構介紹架構
- 敏捷轉型ADKAR變革管理模型介紹敏捷模型
- CSS3轉換(transform)基本用法介紹CSSS3ORM
- Flownet 介紹 及光流的簡單介紹
- Cloudera的介紹Cloud
- HikariCP 的介紹
- CyclicBarrier的介紹