數位天堂

Nokia:科技始終來自於人性; 拜耳:如果文明不能使我們更相愛,那科技便失去意義!
歡迎您的加入,讓我們一起討論科技與環保的整合應用...

您尚未登入。

#1 2012-06-21 20:39:20

hippo
天使
註冊日期: 2008-10-07
文章數: 1562
目前積分 :   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 24121 2010-07-06 12:01:51 作者 hippo

友情連結

論壇頁尾

Powered by PunBB
© Copyright 2018 Rickard Andersson
RSS Feed