#1 2012-06-21 20:39:20
多重Linux OS開機(SYSLINUX+GRUB)
之前為了編譯Tomato與自製套件, 常在chroot, VirtualBox, Linux-VServer切換不同的Linux OS, 但總覺得老機器W5Fe的硬體資源無法充分發揮. 隨著Mageia 2的發佈, 乾脆重搞好了.
一般安裝Linux OS的步驟, 幾乎都是下載iso檔, 燒錄成光碟, 由光碟開機安裝. 少數是搞成USB隨身碟, 由USB隨身碟開機安裝. 更少數是提供PXE boot, 開機直接由網路安裝. 例如: Debian. 對我來說, 自從搞出KVM over IP後, 搭配Tomato, PXE安裝最方便, CD與USB都可免了.
Linux OS棲身之處, 本機硬碟, 網路硬碟(NFS, iSCSI, AoE等). 多數是選擇安裝到本機硬碟. 有些Linux OS可直接安裝到網路硬碟. 同樣搭配Tomato, 可達成無磁碟開機.
Linux OS運行環境, 虛擬機器, 本機硬碟, 網路硬碟, chroot等. 虛擬機器與chroot, 是在本身OS下, 跑另一個OS. 差異是硬體設備, 例如: 網路卡, chroot是吃自己的; 虛擬機器是摹擬的. 本機硬碟, 由GRUB切換OS. 網路硬碟, 由SYSLINUX切換OS.
因為在本機硬碟跑的速度最快, 所以常用的Linux OS, 我仍是選擇安裝在本機硬碟, 不常用或測試用的Linux OS, 就安裝在網路硬碟. 本機硬碟劃分幾個分割區, 分裝不同的Linux OS. 各個Linux OS共用/home, swap, 所以要獨立分割區. /boot也獨立出來, 讓GRUB選擇要進入的Linux OS, 載入核心後, 再切換到不同分割區的Linux OS. 各分割區大小, 視自己的需要規劃. 以我的需求來說, 電腦只是單一使用者, /home存放雜七雜八的東西, 讓各個Linux OS的同一使用者共用, 要大一些. /boot存放所有常用的Linux OS的核心, 夠放就好.
1. 先安裝自己主要運行的Linux OS. 我用Mageia 2. 安裝完畢後, 查閱/etc/fstab, 檢查分割區的掛載點. 接著分別安裝文字派的Arch Linux與Debian. 安裝過程中, 不指定掛載/boot, /home, 以免又被格式化. 最後要改寫MBR的步驟, 也要略過, 避免找不到原先規劃的/boot分割區.
2. 進入Mageia 2, 將Arch Linux與Debian所安裝的核心(在各自的/boot內), 複製到/boot分割區, 建立連結.
lrwxrwxrwx 1 root root 34 Jun 7 12:03 initramfs-archlinux-i686.img -> ArchLinux/i686/initramfs-linux.img
lrwxrwxrwx 1 root root 36 Jun 7 12:02 initramfs-archlinux-x86_64.img -> ArchLinux/x86_64/initramfs-linux.img
lrwxrwxrwx 1 root root 35 Jun 7 21:54 initrd-debian6-i386.img -> Debian/i386/initrd.img-2.6.32-5-686
lrwxrwxrwx 1 root root 28 Jun 7 12:02 vmlinuz-archlinux-i686 -> ArchLinux/i686/vmlinuz-linux
lrwxrwxrwx 1 root root 30 Jun 7 12:01 vmlinuz-archlinux-x86_64 -> ArchLinux/x86_64/vmlinuz-linux
lrwxrwxrwx 1 root root 32 Jun 7 21:54 vmlinuz-debian6-i386 -> Debian/i386/vmlinuz-2.6.32-5-686
3. 修改GRUB開機選單, 加入其他Linux OS.
# nano /boot/grub/menu.lst
...
title Arch Linux (x86_64)
kernel (hd0,0)/vmlinuz-archlinux-x86_64 root=/dev/sda6 ro
initrd (hd0,0)/initramfs-archlinux-x86_64.img
title Arch Linux (i686)
kernel (hd0,0)/vmlinuz-archlinux-i686 root=/dev/sda7 ro
initrd (hd0,0)/initramfs-archlinux-i686.img
title Debian (i386)
kernel (hd0,0)/vmlinuz-debian6-i386 root=/dev/sda8 ro quiet
initrd (hd0,0)/initrd-debian6-i386.img
4. 開機進入所選的Linux OS後, 編輯/etc/fstab, 掛載共用的/home, swap
/dev/sda6 / ext4 defaults 0 1
/dev/sda2 /home ext4 defaults 0 2
/dev/sda4 none swap sw 0 0
5. BIOS設定PXE boot優先.
如此一來, 開機之後, 首先進入SYSLINUX選單, 可選擇由TFTP server載入核心, 進入網路硬碟的Linux OS. 或等候逾時後, 進入GRUB選單, 選擇要進入的本機硬碟Linux OS.
離線
相關討論主題
主題 | 回覆 | 點閱 | 最後發表 |
---|---|---|---|
5 | 25512 | 2010-07-06 12:01:51 作者 hippo |