2010年10月3日 星期日

安裝 Ubuntu 到 SD 卡上

1. 先安裝 boot loader , 我習慣用 grub, grub 也是 ubuntu 內建的 boot loader
2. 將 SD 分割好, 我習慣將 partition 1 設成 FAT, 將 partition 2 設成 linux, 務必確認 SD 卡所在的磁碟機, 一般來說, 開機碟是 hd0, 第二個是 hd1, 我的 SD 卡是在 hd1, 可以利用 grub 內建指令搜尋檔案所在位置
先使用 Ubuntu Linux 開機:
再取得 Ubuntu 的 root 控制權
\UbuntuLinux>sudo su
使用 fdisk 分割 SD 卡, 例如 sdb1(FAT 06), sdb2(Linux 83)
\UbuntuLinux>fdisk /dev/sdb
....
參考命令: n, a, t, l, m
....
\UbuntuLiux>cd /mnt
將 partition 2 格式化成 Linux
\UbuntuLinux\mnt>mke2fs /dev/sdb2
建立 grub 所需資料夾:
\UbuntuLinux\mnt>mkdir sdb
\UbuntuLinux\mnt>mount /dev/sdb2 sdb
\UbuntuLinux\mnt>mkdir sdb/boot
\UbuntuLinux\mnt>mkdir sdb/boot/grub
將 grub 所需的檔案存入 /mnt/sdb/boot/grub 內: stage1, stage2, stage1_5..., menu.lst
\UbuntuLinux\mnt>cp ... /mnt/sdb/boot/grub
修改 /boot/grub/ment.lst 內容
\UbuntuLinux\mnt>vi sd/boot/grub/menu.lst
將Ubuntu 的 iso 檔(例如 Ubuntu10.04.iso ) 放在 partition 1 (hd0,0) 的 capser 目錄下,
Ubuntu 10 的 linux kernel 名稱叫作 vmlinuz, ramdisk 名稱叫作 initrd.lz, 一般來說,都放在 cdrom 的 casper 目錄內, 可以將他複製到 SD 卡上的 partition 1 (FAT) 內,只要在 menu.lst 明確設定好 kenrel 及 ininrd 所在位置即可
...
default=0
timeout=2
root (hd0,0)
kernel /casper/vmlinuz boot=casper iso-scan/filename=/casper/ubunt10.04.iso ro splash locale=zh_TW.UTF-8
initrd /casper/initrd.lz
...

卸載 SD 卡, 並執行 grub 安裝 boot loader
\UbuntuLinux\mnt>umount sdb
\UbuntuLinux\mnt>grub
在 grub 內設定好 root device, 以便讓它去找尋 stage1, stage2, stage1_5, menu.lst 所在磁碟
\grub>root (hd1,1)
並確認 root device 所在磁碟: 例如將 id 存入在 /mnt/sdb/boot/grub/id , 則執行以下命令:
\grub>find /boot/grub/id
安裝 grub 到 SD 卡 MBR
\grub>setup (hd1)
\grub>quit
重新開機並設定 BIOS 讓 SD 卡可以啟動開機

沒有留言: