如何設置一支 USB 儲存器來安裝 CentOS

回覆文章
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

如何設置一支 USB 儲存器來安裝 CentOS

文章 yehlu »

http://wiki.centos.org/zh-tw/HowTos/InstallFromUSBkey

如何設置一支 USB 儲存器來安裝 CentOS

其它用家比較喜歡「另類方法」部份內的某些做法,而且已證實適用於 CentOS-6。
以下程序已經被不同用戶所測試,但未必能涵蓋所有可能性。安裝者敬請留意。

推動力

很多新近的系統,尤其是筆記型及超輕型電腦,都未必擁有 CD 或 DVD 機,而視乎網絡連線及安裝器對網絡硬件的支援,進行網絡安裝可以是困難、不設實際、或根本不可能。這裡的程序容許你在沒有網絡連線、或其它安裝媒體的情況下,只利用一支可開機的 USB 裝置及目標系統的碟盤來安裝 CentOS。

CentOS-6

在一支 USB 儲存器上建立 CentOS 6.2 發行版本 —— 多謝 Mark Roth <m.roth@5-cent.us> 提供 CentOS-6 的步驟。

建議:8GB 或更大的 USB 儲存器。

把 USB 儲存器分割為兩個分割區:第一個是 FAT32,大約 250M;第二個是 ext3,佔用餘下的空間。
假若不是自動掛載的,請掛載 DVD(在 /media 或 /mnt 上)。下面假設是 /mnt/USB 及 /mnt/DVD。
掛載 USB 儲存器在 /mnt/USB/ 上。
複製 /mnt/DVD/isolinux 的目錄及內容至 /mnt/USB/。
把 /mnt/USB/isolinux 改名為 /mnt/USB/syslinux
把 /mnt/USB/syslinux/isolinux.cfg 改名為 /mnt/USB/syslinux/syslinux.cfg
複製 /mnt/DVD/images 的目錄及內容至 /mnt/USB/。(有一個錯誤已被匯報,因為截至 2012 年 1 月 11 日,安裝時需要 .iso(參考下文),但 linux rescue 需要映像的內容來載入程式及執行。)
假設 USB 儲存器是 /dev/sdb
syslinux /dev/sdb
syslinux -i /dev/sdb1
卸下 /mnt/USB,然後
mount /dev/sdb2 /mnt/USB.
複製 .iso 檔至 /mnt/USB。切勿複製內容 —— 安裝器現在需要 .iso 檔本身,它會在安裝時自行掛載。
在 /mnt/USB 建立 grub.conf。如果你的系統要以 USB 儲存器作為首個碟盤,你必須這樣做,好讓你能把它複製至硬盤。
卸下 USB 儲存器,它已經準備好了。
CentOS-5

先決條件

一台支援以 USB 媒體開機的目標安裝系統。這可能須要在 BIOS 設置內設定。
一支擁有足夠空間來容納安裝媒體的 USB 儲存器 —— 又名:記憶棒、快閃儲存器、手指儲存器、等。CentOS 5.4 i386 應該能夠放置在一支 4GB 儲存器內,x86_64 需要多過 4GB,而一支的 1GB 儲存器應該可支援透過首張光碟進行最小安裝。同樣的技巧亦適用於家居的 USB 硬碟。這裡假設了整個程序是已圖像介面(GNOME/KDE/等)進行,因此這個 USB 媒體將會被自動掛載。
一台可用的 Linux 系統(Linux 多數安裝在另一台電腦上、運行於 Live CD、或者在一虛擬機器上),連同 syslinux(假若未安裝的話,"yum install syslinux" 或者以發行版本的原生套件管理程式安裝)。本作者在使用 CentOS-5.3/5.4 的 syslinux 套件時遇上了問題。由 CentOS 的 LiveCD Tools 軟件庫所提供的套件卻能正常運作。
一套針對所需架構的 CentOS 安裝 CD ISO 映像,或 DVD ISO 映像。
你或許會需要更改裝置名稱、架構、及/或 syslinux 路徑來配合你安裝了的發行版本、情況、及喜好。

當剪貼以下指令時,請留心地按你的處境作出調整!

程序
假設 USB 儲存器以 /dev/sdg 出現(請按你的處境調整 —— 這很大機會是不相同的)而 CentOS 5.4 i386 將會被安裝。

成為 root 用戶。在 USB 媒體上建立一個細小的 VFAT 分割區(100 MB 應該已足夠了)及一個大的 Linux 分割區。請將 VFAT 分割區設定為可開機的。
fdisk /dev/sdg
在 fdisk 利用 m 來顯示項目選單。指令的次序大概是這樣(去除 # 註譯):
d # 刪除現有分割區 —— 按需要重複
n # 新增分割區
p # 主分割區
1 # 分割區編號
<enter> # 採用預設值
+10m # 增加 10 MB
t # 更改類型
1 # 分割區編號
b # VFAT
n # 新增分割區
p # 主分割區
2 # 分割區編號
<enter> # 採用預設值
<enter> # 採用預設值
a # 切換可開機旗標
1 # 分割區編號
w # 寫入磁碟
在完成後應該類似這個樣子:
Disk /dev/sdg: 7948 MB, 7948206080 bytes
81 heads, 10 sectors/track, 19165 cylinders
Units = cylinders of 810 * 512 = 414720 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/sdg1 * 1 65 26320 b W95 FAT32
/dev/sdg2 66 19165 7735500 83 Linux
建立檔案系統:
mkfs.vfat -n BOOT /dev/sdg1
mkfs.ext2 -m 0 -b 4096 -L DATA /dev/sdg2
拔出後再插入這個 USB 媒體。這些分割區現在應該被掛載在 /media/BOOT 及 /media/DATA。
複製 CentOS 的 ISO 檔到那個 ext2 分割區內。針對 CD 映像檔:
cd /dir/of/iso/images
mkdir /media/DATA/centos
mkdir /tmp/cdimage
mount -ro loop CentOS-5.4-i386-bin-1of6.iso /tmp/cdimage
cp *sum* /media/DATA/centos
for i in 1 2 3 4 5 6; do cp -v CentOS-5.4-i386-bin-${i}of6.iso /media/DATA/centos/; sync; done
cd /media/DATA/centos
grep of6 sha1sum.txt | sha1sum -c - CentOS-5.4-i386-bin-?of6.iso
針對 DVD 映像樣,請用下面兩行取代上面的 for 迴圈
cp -v CentOS-5.4-i386-bin-DVD.iso /media/DATA/centos/; sync
cd /media/DATA/centos
grep DVD sha1sum.txt | sha1sum -c - CentOS-5.4-i386-bin-DVD.iso
在 VFAT 分割區及 MBR 內安裝並設定 syslinux:
syslinux -s /dev/sdg1
dd if=/usr/share/syslinux/mbr.bin of=/dev/sdg
cd /media/BOOT
cp -rv /tmp/cdimage/isolinux syslinux
mv syslinux/isolinux.cfg syslinux/syslinux.cfg
rm -f syslinux/isolinux.bin
umount /tmp/cdimage
<your-favorite-editor> syslinux/syslinux.cfg
在各部份的 append 語句內加入:
method=hd:sda2:/centos
若然要採用 kickstart:
ks=hd:sda2:/ks.cfg method=hd:sda2:/centos
使用圖像介面來「安全地移除」這個 USB 媒體。將它移至目標系統,開機並進行安裝。
備註

一般資訊可參閱安裝指南。
在測試這個程序的過程中,某些 MicroSDHC 媒體無法運作,就算重新分割及格式化後,在寫入所有 iso 映像檔時均出現錯誤。來自另一個生產商的同類型媒體卻沒有問題。假如你遇上問題,請試用另一張媒體,或者在格式化後重試。Windows(很不幸 —— 對不起)上的 SDHC Formatter 對不合作的 SD 媒體來說非常有好。請運用包含刪除及調整大小的完整格式化選項,而不是快速格式化的選項。
Format type - FULL(Erase ON)
Format size adjustment ON
你或許會須要用 CD ISO 檔,因為有些人匯報 DVD 映像檔在 USB 儲存器上會出錯。本作者的 CD 及 DVD 映像檔都能正常運作。
嘗試以唯讀的 USB 媒體來進行安裝會產生大數有關唯讀媒體的錯誤信息。這些警告出現後我沒有嘗試繼續安裝。
進行安裝時,請確保 Anaconda 安裝程式將開機記錄寫入正確位置,而不是在 USB 儲存器內。你多數須要用 GRUB 的「進階開機程式選項」來更改裝置的次序,把目標開機裝置放在清單的頂部,好讓 GRUB 能被正確地安裝。假如你沒有這樣做,GRUB 開機程式便會被寫入 USB 儲存器,你必須在儲存器重裝 syslinux MBR 才能運作,而且系統無法開機。如果你落在這個境況中,請參閱 zh-tw/TipsAndTricks/ReinstallGRUB 這篇文章,及/或參閱 SuperGRUB。
採用 extlinux 較 syslinux 也許更可取,因為它不須應用 FAT 分割區。
多謝 John Doe 在以下的 CentOS 郵件列表電郵內提供了基本的資料: http://lists.centos.org/pipermail/cento ... 77860.html

來自 OP 的額外註釋: 唔,是我的錯……我是用 kickstart 檔的(並且用 HP 磁碟陣列控制器),而我忘記了我須要在當中加入:

bootloader --driveorder=cciss/c0d0,sda --location=mbr
kickstart 方面,我採用以下設定:

在 syslinux/syslinux.cfg:
append initrd=initrd.img ks=hd:sda2:/ks.cfg method=hd:sda2:/centos

在 /media/DATA/ks.cfg(內裡的相關部份):

harddrive --partition=sda2 --dir=/centos
ignoredisk --drives=sda
bootloader --driveorder=cciss/c0d0,sda --location=mbr
此外,老實的說,我不應該領任何功勞;我在網上找到大部份的資料…… _

早前我亦匯報了:

我的 HP 伺服器似乎不願意用唯讀的 USB 儲存器開機。
Anaconda 過早嘗試讀取 ks.cfg……假如我在硬件偵測完成後(只是 2-3 秒後)重試,那便沒有問題。
有一句 "cannot mount read/write, will mount read-only" 的錯誤信息出現(我喜歡唯讀模式)
另類方法

UNetbootin 也許是最受歡迎的「外來」方法。它同時備有 Windows 及 Linux 的執行檔,助你把不同的 Linux 發行版本,包括 CentOS,建立為開機用的 USB 儲存器。它曾經有一個 anaconda 錯誤可導致媒體無法使用 —— 這個錯誤在 Fedora 13 已獲修正,在 RHEL/CentOS-6 上理應一樣。論壇上有用戶匯報它至少適用於 CentOS-6 的 netinstall ISO。當使用 netinstall ISO 時,你可以把整隻安裝碟的 ISO 檔複製到 USB 媒體的根目錄裡,然後選擇「硬盤」安裝。

Marcus Moeller 的建議:

livecd-iso-to-disk 更棒,你可透過 git 取得它:

http://git.fedorahosted.org/git/?p=live ... sh;hb=HEAD

下載後,chmod +x 然後執行它:

./livecd-iso-to-disk.sh /path/to/iso /dev/partition_of_your_usb_stick

你也可加上這個選項:

--overlay-size-mb 1024

為儲存器加上持續功能專用的空間。

你無須再把 ISO 檔放置在儲存器上,便可直接利用它作安裝之用。

論壇用戶 Al_Stu 推薦這個方法。

論壇用戶 ron_l_j 推薦名為 iso2usb 的 Windows 工具。

有一位 CentOS 郵件列表的成員建議Pendrivelinux.com。

在 USB 儲存器上建立安裝碟的另一個做法。

在沒有網絡的情況下,另一個可行的方法就是按照安裝指南中所記載,用 USB 儲存器以 diskboot.img 開機,然後利用目標電腦上的 ISO 映像檔進行硬碟安裝。

這不是一則廣告,但 OSDisc.com 以相宜的價格發售多款載有 CentOS 的 USB 開機媒體。假如有人試用它們,煩請在論壇上作出匯報。

這頁的英文版由 PhilSchaffner 建立及維護。歡迎其他擁有編輯權限的 Wiki 貢獻者作出更正或添加。其他有意見的讀者可以在我的 Wiki 頁內找到聯絡資料。
回覆文章

回到「CentOS」