本文將介紹如何在u盤上安裝Ubuntu Linux系統。雖然本文采用的是Ubuntu,但實際上依此方法安裝其他Linux live CD發行版也是可行的。
從u盤上運行Linux,豐富了live CD的體驗,使你可以在任意機器上運行Linux,比隨身攜帶一張光盤方便多了。
1. 准備工作
在開始之前,你至少需要進行如下准備:
* 一張Ubuntu live CD 或者 .iso 鏡像文件
* 容量至少為1G的 U 盤
* 運行的 Linux 操作系統
2. 設定u盤
首先,將u盤插上,檢查設備是否被認出。為了找到設備,請運行以下命令:
$ sudo fdisk -l
在我的系統中,此設備的盤符為 /dev/sdb ,本文以 /dev/sdb 為例講解,讀者請根據自己系統的實際情況更改(可能是sda,sdc……)。
系統發現 U 盤後,將要創建分區。
注意:使用錯誤的盤符可能破壞你的硬盤分區,所以請謹慎輸入。
創建分區
將已經掛載的 U 盤卸載:
$sudo umount /dev/sdb1
然後使用fdisk,一個編輯分區的工具:
sudo fdisk /dev/sdb
我們刪除 U 盤的分區後,在上面創建兩個新分區:一個容量為750MB的fat文件系統分區,用來保存 live CD 鏡像中的文件,其余的另一個分區。
然後輸入的格式為“d x”,x為分區的盤符,以下依次輸入:
*n 創建新的分區
*p 設為主分區
*1 設為第一主分區
*接受默認選項或輸入“1”從第一柱面啟動
*+750M 將空間設置為750MB
*a 將分區設為可以啟動的活動分區
*1 選擇這個分區
*t 改變分區格式
*6 設置為FAT16分區
第一個分區設置完成了,進行第二個:
*n to create yet again a new partition
*n 再次創建一個分區
*p 設為主分區
*2 設為第二分區
*回車接受默認選擇
*接受默認選擇,用盡所有容量
*最後,輸入 w 使U盤完成上述更改
分區完成後,進行格式化。
格式化分區
第一個分區將要被格式為FAT16文件系統,並將 U 盤設定為自啟動。
$ sudo mkfs.vfat -F 16 -n liveusb /dev/sdb1
第二個分區將要被格式化為 ext2 文件系統,塊長(blocksize)為4096字節,並且將該卷進行casper-rw(否則將不能成功完成目標!)
$ sudo mkfs.ext2 -b 4096 -L casper-rw /dev/sdb2
現在,需要將 live CD 鏡像復制到 U 盤中。
3. 從u盤中安裝Ubuntu
掛載Ubuntu live CD 鏡像
首先需要掛載ubuntu的鏡像。有兩種方法,通過“。iso”文件或者是光盤。
從 CD 掛載
將Ubuntu或其他發行版光盤插入電腦,將會被自動掛載。否則,按如下操作便能成功掛載。
$ sudo mount /media/cdrom
從 .iso 鏡像文件掛載
需要創建一個臨時的文件夾,以 /tmp/ubuntu-livecd 為例,然後將其掛載:
$ mkdir /tmp/ubuntu-livecd
$ sudo mount -o loop /path/to/feisty-desktop-i386.iso /tmp/ubuntu-livecd
掛載 U 盤的分區
將u盤再次插入,兩個分區將顯示為/media/liveusb和/media/casper-rw.如果該情況未能出現,你需要手動掛載:
$ mkdir /tmp/liveusb
$ sudo mount /dev/sdb1 /tmp/liveusb
所有需要的分區都已經被掛載,該復制文件了。
將文件復制到 U 盤中
找到CD鏡像的路徑(筆者的情況是/tmp/ubuntu-livecd,當然也可能是/media/cdrom),然後復制到作為根分區的u盤第一分區:
包括casper,disctree,dists,install,pics,pool,preseed,。disk這些目錄,isolinux目錄下的所有文件,還有md5sum.txt,README.diskdefines,ubuntu.ico,casper/vmlinuz, casper/initrd.gz和install/mt86plus.
$ cd /tmp/ubutu-livecd
$ sudo cp -rf casper disctree dists install pics pool preseed .disk isolinux/* md5sum.txt README.diskdefines ubuntu.ico casper/vmlinuz casper/initrd.gz install/mt86plus /media/liveusb/
可能出現符號鏈接不能被創建,你可以忽略過去。
下面我們將 U 盤第一分區中的isolinux.cfg更名為syslinux.cfg:
$ cd /tmp/liveusb
$ sudo mv isolinux.cfg syslinux.cfg
根據你的設置改變/tmp/liveusb
按照下面編輯syslinux.cfg文件:
DEFAULT persistent
GFXBOOT bootlogo
GFXBOOT-BACKGROUND 0xB6875A
APPEND file=preseed/ubuntu.seed boot=casper initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash ——
LABEL persistent
menu label ^Start Ubuntu in persistent mode
kernel vmlinuz
append file=preseed/ubuntu.seed boot=casper persistent initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash ——
LABEL live
menu label ^Start or install Ubuntu
kernel vmlinuz
append file=preseed/ubuntu.seed boot=casper initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash ——
LABEL xforcevesa
menu label Start Ubuntu in safe ^graphics mode
kernel vmlinuz
append file=preseed/ubuntu.seed boot=casper xforcevesa initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash ——
LABEL check
menu label ^Check CD for defects
kernel vmlinuz
append boot=casper integrity-check initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash ——
LABEL memtest
menu label ^Memory test
kernel mt86plus
append -
LABEL hd
menu label ^Boot from first hard disk
localboot 0x80
append -
DISPLAY isolinux.txt
TIMEOUT 300
PROMPT 1
F1 f1.txt
F2 f2.txt
F3 f3.txt
F4 f4.txt
F5 f5.txt
F6 f6.txt
F7 f7.txt
F8 f8.txt
F9 f9.txt
F0 f10.txt
將 U 盤設置為可引導的
為完成此步驟,需要安裝syslinux:
$ sudo apt-get install syslinux
最後卸載/dev/sdb1,並使其可引導:
$ cd
$ sudo umount /tmp/liveusb
$ sudo syslinux -f /dev/sdb1
重啟,將BIOS設為可以從 U 盤引導,就可以享受 U 盤中的Ubuntu了!
4. 疑難排解
如果不能從 U 盤引導,可能是由於主引導記錄(MBR)被破壞。你可以用lilo來修復這個問題:
$ lilo -M /dev/sdb/dev/sdb上的MBR將會被修復。
注意:
起先按照此辦法並未成功,首先在復制文件時出現出錯,可能是光盤復制上600多M的鏡像文件有問題,但是此光盤我啟動一直沒問題。後來在執行syslinux的時候,出現提示沒有MCOPY的提示,於是安裝mcopy:
$sudo apt-get install mcopy
然後正常。
安裝環境是IBM 筆記本,U盤是1G MiniSD卡+讀卡器,安裝工具是ubuntu7.04的LIVE CD光盤。