CentOS 7 改朝換代–Boot Loader
CentOS 7 跟以往的 CentOS 截然不同,其實不少 Linux distributions 最近版本都己經有此現象,有一種舊人都要變成新人的感覺。
Ref: http://dareneiri.github.io/Configuring-Grub-2-on%20CentOS-7/
事緣近日從新設定一台老爺電腦作老友的練習用途(練習一些 Web project 事情),那台電腦大約是 2008 年購入吧,確實年月要翻看一下自己的網誌才有機會知道了。老爺機伯伯有多老爺?Atom 330 CPU、945 Chipset 的 NetBook/NetTop 簡約版、只有單 RAM slot 2GB RAM、單 HDD,但它沒有太細小的機箱,只是大Book-size,但卻配上一台效能十分差的 Slot-in 式 DVD-writer。Atom 330 在當年來說算是少見的 2 核心加 Hyper-theading,專為 NetTop 而設,不過時至今日,它真的很慢呢。
Dual-boot with Windows XP and CentOS 7
為求方便受訓者使用,尤其是去到若干階段時進行 Backup,或是闖下大禍時能 Restore,又要顧及不熟習 Linux/UNIX-like 的朋友們需要,於是決定 Dual-boot。有想過以 Windows 7/10 伴隨,但 Windows 7 有 Device drivers 相容性問題,也較 XP 運行起來緩慢(Device drivers 問題有關吧),而 Windows 10,看來它需要的 GPU 效能並不是 Atom 330 所能有效支撐的,CPU loading 總是攻頂。
Windows XP 只支援 MBR Boot-loader,CentOS 7 也能支援但需要伴隨 XP 的話,會有很多問題,即使己經是先安裝 Windows XP 才安裝 CentOS 7,主因是 GRUB 2 on CentOS 7 己經截然不同。首先即使先安裝 Windows XP,也無法 Detect 得到而自動加上 Windows XP item 於 Boot menu 上。而加上 Windows XP item 的方法,古怪得很,所需要的指令跟不同 OS 性質又需特別配搭。暫時來說,除非有心機仔細研究 GRUB,否則只好查看好些神人的 Blog post 解救。奈何 CentOS 7 尚算新的,分享出來的神人 Post 實在不多。這裡分享的 Reference 也是近日才找到。
特別注意事項
如今 PC Boot-up,有 UEFI BIOS、GPT Partition Bootup、MBR Bootup 等等,各有好處但又似乎太多種了吧。Windows XP 只能用 MBR 模式,一個 Disk 中只能有四個 Primary partition,又或是最後一個化為 Extended partition,然後在其中建立多個 Logical partitions。問題來了…
Disk 0
Partition 1: Pri, XP OS NTFS
Partition 2: Pri, Document NTFS
Partition 3: 打算建立 Extended partition 供 CentOS 7 使用,讓它建立 Logical partitons for LVM type partitoin group
結果會是失敗的!CentOS 會無法順利讓你劃出 /boot partition 以及 BIOSBOOT 這個 special boot loader area。BIOSBOOT 需要 1MB/2MB 空間(CentOS 7 似乎必要 2MB),相信用作存放 GRUB 的,它必須要位於 Disk 上的 First Parition,而且要是 MBR type,最傳統的 Standard partition。而 /boot partition 也需要 MBR type!屈指一算,這樣的話於 CentOS 7 installation 階段間規劃 Partition layout 便會出現問題,因為這樣會出現 4 個 Primary partitions,無法空出最後一個用作 Extended partiton。
若然 Document NTFS 那一個預先規劃,或是使用 Partition tools 修改為 Logical Partition 的話,能否解決問題呢? 答案是”不能”的!這樣又會令到 CentOS installer 無法構建它需要加上 partition 的作業。即是說,需要讓 installer 能全權控制建立 Extended partition,不能自行預先己存在 Extended partition。
解決方法
Disk 0
Partition 1: Pri, XP OS NTFS
安裝完 Windows XP,用 Partition tool 將它移後一點,前方預留 510 MB 吧。何解要約為 500MB?因為…
Disk 0
Partition 1: Pri, BIOSBOOT 2MB
Partition 2: Pri, /boot about 512MB for kernals image files
Partition 3: Pri, XP OS NTFS
Partition 4: Extended partition
Logiical partitions, those partitions are also created by installer for LVM Group type
Boot-loader 修改
前文所述,Bootloader GRUB 這位大俠不知何解如今變得無法認出 Windows XP 呢,完事後你會發覺電腦 Reboot 時直衝入 CentOS 7 only…。此時就要用本文前部分提供的 Reference 去好好修改一下 GRUB2 的 Boot menu item 了。
接著又會發現失敗的!那個修改方法只適用於 Windows 7,Windows XP 環境下需要再加些少東西,可參考這個:
https://bbs.archlinux.org/viewtopic.php?id=153988
結果新 entry item 大概會變成這樣:
menuentry “Windows 7” { insmod ntfs set root=(hd0,1) search –no-floppy –fs-uuid –set BE4CA71B4CA6CD89 chainloader +1 }
root value 當然必須自行因應情況修改,uuid 則可用指令 sudo blkid
取得。
這部 NetTop 過去的任務
題外話,趕緊設定 Server 的大可以先行離開這頁了。
我手上的那一台 NetTop 老爺機,過往曾擔當多個角色。
- 老爸用的電腦,可惜自從轉用 Android phone 後實在太少再使用了。他又不懂打字,電腦用手寫板也吃力(手機手寫又甚少會出現 Cursor lost focus 問題吧)
- 呆在一角
- 置於房中跟主力大大台的 Desktop PC 相伴,只用作收聽電台節目重溫,預定時間自動休眠,作為睡前的床頭收音機角色似的。Desktop PC 有時太忙,播放有機會中斷或不順暢,所以再利用 NetTop 作為最能順暢持久播放角色。加上不喜歡利用手機放近自己的頭部做這角色呢。(好似有點夾硬再利用它似的吧)
- Windows 10 試驗,眼見 2015 年的 Atom CPU 也引發大量 Atom based Windows 10 Tablet,打趣地試一試N年前的 Atom 330 又會如何…結果是…
- FreeBSD 10.2 試驗,但實在對 FreeBSD 這個老大哥的近代版本極度失望。FreeBSD 的悠長歷史、地位、角色,去到這個 10.x 世代似乎己經有點累了吧。其實其它 BSD 分支也有這種狀況,開始變得風格太古老了,包括 MacOS X 呢。有人說 MacOS X 根本是一隻舊船,不斷修修補補。甚至乎形容它為一隻秀花鞋,我心想這樣說的人或許是比喻若要將 Mac OS X 這個 BSD 分支拿來當作 Workstation-level or Server-level 角色時會有多慘吧。
觀乎 Server 界也甚少會用 Mac OS X Server 構建,…。不談太多了,Apple 的世界實在太有宗教色彩似的。談太多只會惹來宗教式衝突。或許 Apple 用家們就是一直地享受切有所寄托,簡簡單單地接受安排就好了吧。這方面對於我這個甚麼都想試下用下改下研究下的人來說,實在不太適合。Mac OS X 環境十分困悶,我承認我是喜歡打開車頭蓋研究一番改改改的人,即使修改上往往假手於人,也要從旁細看一番。好幾次都有 Designer、影片拍攝製作人都跟我說,見客才用 MacBook Air,家裡公司裡都是 PC 砌出 Super-workstation 呢 (なるほど~)。Apple PC 於 G4/G5 年代裡仍然有不少的可改造性,如今的 MacBook/MacBook Pro/MacBook Air/iMac… 太過電話化了吧,鼓勵用家們跟隨密密地整台換掉呢。
蘋果(Apple)能夠在粉絲大腦中引起“宗教式”的反應