howto make a linux boot disk

24
如何建立 Linux 開機片 Xaver Y. R. Chen (yrchen) [email protected]

Upload: xaver-yr-chen

Post on 17-May-2015

1.566 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Howto Make A Linux Boot Disk

如何建立 Linux 開機片

Xaver Y. R. Chen (yrchen)[email protected]

Page 2: Howto Make A Linux Boot Disk

預先準備

• Linux Machine?

• USB disk/CD-ROM

Page 3: Howto Make A Linux Boot Disk

PC 開機流程

• 電腦啟動後,BIOS 作基本的硬體檢測,並根據設定決定開機裝置

• BIOS 依序進行開機,若在硬碟上則讀取最前面的 512bytes (MBR) 尋找 Boot Loader

Page 4: Howto Make A Linux Boot Disk

GRUB

Page 5: Howto Make A Linux Boot Disk

使用 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

Page 6: Howto Make A Linux Boot Disk

以上還不夠

Page 7: Howto Make A Linux Boot Disk

原因

• 雖然安裝了 grub 當作 boot loader,可是卻沒有設定 grub 的行為

• 也就是說,grub 不知道自己要幹嘛

Page 8: Howto Make A Linux Boot Disk

設定 grub

• 請使用喜愛的編輯器,編輯/boot/grub/menu.1st 這個檔案

Page 9: Howto Make A Linux Boot Disk

設定 grub

• 範例title Linux root (hd0, 1) kernel /vmlinuz root=/dev/hda1 initrd /initrd

Page 10: Howto Make A Linux Boot Disk

重點

• grub 只是一個 boot loader,它的功能只有找到指定的核心並載入

• 要正確的開機,需要指定正確的 Kernel路徑和參數給 grub

Page 11: Howto Make A Linux Boot Disk

重點

• 更重要的,grub 要讀得到自己的設定檔

• 設定檔跟部份程式都放在 /boot/grub/ 下

Page 12: Howto Make A Linux Boot Disk

重點

• 若將 grub 安裝在 MBR 時,需告訴 grub/boot 這個目錄是在哪個設備上

• grub> root(hd0, 1)(表示第一個 IDE 裝置的第一個磁區)

Page 13: Howto Make A Linux Boot Disk

檔案系統

• 因為 /boot 是個目錄,表示它一定存在於檔案系統中

• grub 必須支援讀取檔案系統

Page 14: Howto Make A Linux Boot Disk

檔案系統

• Ext2/Ext3

• FAT/VFAT (FAT 32)

• Minix

• ReiserFS/JFS/XFS

Page 15: Howto Make A Linux Boot Disk

檔案系統

• LVM?不支援!

• 目前 grub 僅支援以 Partition 為主的檔案系統,LVM 等以 Slice/Volume 為主的暫不支援

Page 16: Howto Make A Linux Boot Disk

M$ Windows

• 因為 Windows 系統有自己的 boot loader,所以僅需把控制權轉交給 Windows 的 boot loader 即可

• Chain Loader 的概念

Page 17: Howto Make A Linux Boot Disk

Wubi

Page 18: Howto Make A Linux Boot Disk

Wubi

• Ubuntu installer for Windows

• Wubi 讓 Linux 可以讀寫 NTFS 磁區?

Page 19: Howto Make A Linux Boot Disk

Wubi 的限制

• 不支援休眠• 比較容易毀損• 檔案系統存取效能較低,會遇到 FAT32/

NTFS 的老問題

Page 20: Howto Make A Linux Boot Disk

SYSLINUX

Page 21: Howto Make A Linux Boot Disk

SYSLINUX

• SYSLinux + PXELinux + ISOLinux +EXTLinux

• 一個輕量化的 boot loader,裝在 FAT檔案系統上

Page 22: Howto Make A Linux Boot Disk

並不用裝在 MBR 上喔

Page 23: Howto Make A Linux Boot Disk

SYSLINUX

• 如果 MBR 空空如也,BIOS 會依序跳進每個硬碟中的 partition

• 所以,SYSLINUX 直接裝在 FAT 磁區上即可

Page 24: Howto Make A Linux Boot Disk

SYSLINUX

• 有 Windows 版本的可執行檔

• 所以,在 Windows 上也可以建立 Linux開機片