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