2022年6月6日 星期一

[Linux] 實作Bootloader, kernel & rootfs開機流程 (下) 使用Buildroot

轉貼本網站文章請註明出處 from Awaysu
https://awaysu-programming.blogspot.com

Buildroot是一個將Bootloader, kernel, rootfs和常用tool整合的一套軟體
他會自動下載和編譯生成所需要檔案
目前實作開機流程軟體大多使用這套

1. 下載buildroot 
https://buildroot.org/download.html


2. 解壓縮及編譯
tar zxvf source/buildroot-2022.02.2.tar.gz
cd buildroot-2022.02.2
make pc_x86_64_bios_defconfig
make menuconfig
make -j8


3. 編譯完後修改kernel支援AHCI SATA讓VirtualBox開機
make linux-menuconfig
Device Drivers  --->    
<*> Serial ATA and Parallel ATA drivers (libata)  --->   
<*>   AHCI SATA support   


4. 再make一次
make


5. 編譯完成後可以找到以下檔案
 1) Bootloader => output/images/grub.img
 2) Kernel => output/images/bzImage
 3) File system image => output/images/rootfs.ext4
 4) File system path => output/target/
 5) Full image => buildroot-2022.02.2/output/images/disk.img
這邊我們直接使用Full image
將buildroot-2022.02.2/output/images/disk.img拷貝至tftp


6. 下載一個可以開機的Linux CD
我選Tiny Core Linux因為只有18M又有基本的linux指令
http://www.tinycorelinux.net/13.x/x86_64/release/CorePure64-13.1.iso


7. 建立VirtualBox虛擬電腦
開啟VirtualBox,新增一台類型為Linux,版本為Arch Linux (64-bit)的虛擬電腦
裝置=>光碟機=>設定CorePure64-13.1.iso並開機

 



8. 重開機

開機後看見boot:按下Enter會看到tc@box:~$表示可以下指令



9. 下載disk.img並寫到硬碟
cd /var
sudo tftp -l disk.img -r disk.img -g 10.118.96.20
sudo dd if=disk.img of=/dev/sda

10. 移除Linux CD後重開機


11. 開機會先進到GRUB,五秒後會自動進入Kernel

12. Login輸入root後就進到file system


沒有留言:

張貼留言