howto make a linux boot disk
TRANSCRIPT
如何建立 Linux 開機片
Xaver Y. R. Chen (yrchen)[email protected]
預先準備
• Linux Machine?
• USB disk/CD-ROM
PC 開機流程
• 電腦啟動後,BIOS 作基本的硬體檢測,並根據設定決定開機裝置
• BIOS 依序進行開機,若在硬碟上則讀取最前面的 512bytes (MBR) 尋找 Boot Loader
GRUB
使用 grub 建立開機片
• blah:~ # mke2fs -L GRUB /dev/sdb0• blah:~ # mkdir /mnt/GRUB• blah:~ # mount /dev/sdb0 /mnt/GRUB• blah:~ # grub-install --root-directory=
/mnt/GRUB /dev/sdb0
以上還不夠
原因
• 雖然安裝了 grub 當作 boot loader,可是卻沒有設定 grub 的行為
• 也就是說,grub 不知道自己要幹嘛
設定 grub
• 請使用喜愛的編輯器,編輯/boot/grub/menu.1st 這個檔案
設定 grub
• 範例title Linux root (hd0, 1) kernel /vmlinuz root=/dev/hda1 initrd /initrd
重點
• grub 只是一個 boot loader,它的功能只有找到指定的核心並載入
• 要正確的開機,需要指定正確的 Kernel路徑和參數給 grub
重點
• 更重要的,grub 要讀得到自己的設定檔
• 設定檔跟部份程式都放在 /boot/grub/ 下
重點
• 若將 grub 安裝在 MBR 時,需告訴 grub/boot 這個目錄是在哪個設備上
• grub> root(hd0, 1)(表示第一個 IDE 裝置的第一個磁區)
檔案系統
• 因為 /boot 是個目錄,表示它一定存在於檔案系統中
• grub 必須支援讀取檔案系統
檔案系統
• Ext2/Ext3
• FAT/VFAT (FAT 32)
• Minix
• ReiserFS/JFS/XFS
檔案系統
• LVM?不支援!
• 目前 grub 僅支援以 Partition 為主的檔案系統,LVM 等以 Slice/Volume 為主的暫不支援
M$ Windows
• 因為 Windows 系統有自己的 boot loader,所以僅需把控制權轉交給 Windows 的 boot loader 即可
• Chain Loader 的概念
Wubi
Wubi
• Ubuntu installer for Windows
• Wubi 讓 Linux 可以讀寫 NTFS 磁區?
Wubi 的限制
• 不支援休眠• 比較容易毀損• 檔案系統存取效能較低,會遇到 FAT32/
NTFS 的老問題
SYSLINUX
SYSLINUX
• SYSLinux + PXELinux + ISOLinux +EXTLinux
• 一個輕量化的 boot loader,裝在 FAT檔案系統上
並不用裝在 MBR 上喔
SYSLINUX
• 如果 MBR 空空如也,BIOS 會依序跳進每個硬碟中的 partition
• 所以,SYSLINUX 直接裝在 FAT 磁區上即可
SYSLINUX
• 有 Windows 版本的可執行檔
• 所以,在 Windows 上也可以建立 Linux開機片