特別值得一提的是Linux 隨身碟有很多值得學習的地方,這裡我們主要介紹Linux U分區盤,包括介紹Linux U格式化盤等方面。一直都很想用閑置下來的256MB Linux 隨身碟製作一個微型的Linux系統,可是,多次嘗試也沒做出來,今天終於做出了一個165.7MB的Linux系統。其中,遇到了不少問題,現在總結一下,以方便進一步的最佳化。
步驟
一、Linux 隨身碟分區
由於我的Linux 隨身碟只有256MB,如果再分開兩個區,可能容量就不夠了,所以,我的做法是Linux 隨身碟只分一個區。使用fdisk /dev/sdb指令,將u盤分成兩個分區,一個Linux Ext3分區,一個FAT16分區,並將Linux分區標記為可引導的分區。
- Disk /dev/sdb: 262 MB, 262012928 bytes
- 1 heads, 56 sectors/track, 9138 cylinders
- Units = cylinders of 56 * 512 = 28672 bytes
- Disk identifier: 0x00000000
- Device Boot Start End Blocks Id System
- /dev/sdb1 2 200 5572 6 FAT16
- /dev/sdb2 * 201 9138 250264 83 Linux
註:經測試Linux 隨身碟單獨分一個ext3分區似乎不太穩定?經常無緣無故的變回FAT16,怪了。
二、Linux 隨身碟格式化
值得注意的是在格式化前得先把Linux 隨身碟卸載掉。
sudo mkfs.vfat /dev/sdb1
sudo mke2fs -j -m0 -L SAN /dev/sdb2
sudo tune2fs -c -0 -i 0 /dev/sdb2
三、製作initRD
在製作時,提示“--preload=ehci-hcd ”找不到,我還沒確定該寫法是否有問題,或者應該是“--preload=ehci_hcd ”?sudo mkinitrd --preload=ehci-hcd --preload=usb-storage --preload=scsi_mod --preload=sd_mod /boot/usbinitrd.img `uname -r`
四、製作Linux檔案系統
將Linux 隨身碟mount起來,修改usb目錄的許可權,然後在Linux 隨身碟目錄下建立如下檔案夾chmod 777 -R /mnt/usb mkdir bin sbin etc dev lib sys proc usr var root home tmp mnt selinux
然後,將已有的Fedora10的檔案系統中的boot bin sbin etc lib 目錄及其下面的所有檔案複製到Linux 隨身碟中(我的做法是手動拷貝,這樣可一將其中的連結也保留下來,當然,也可以cp -arp ),我的Linux 隨身碟比較爛,經常出現Read-Only System的問題,不過重新mount一下就OK了!
補充說明:
1、後來嘗試還是使用文字終端手動Mount比較穩頭些!
2、還有一個關於磁碟檢查的問題,在製作的過程中Linux 隨身碟有可能出現錯誤,這時可以用e2fsck命令對相應分區作檢查,如e2fsck /dev/sdb2等。
3、製作檔案系統時一定要用UUID防止mount錯位,造成Linux 隨身碟檔案系統破壞!
4、系統啟動時顯示一行Log“loading /lib/keymaps/i386/qwerty/us.map”,這說明lib下的系統動態連結程式庫檔案相當關鍵!
以下為檔案系統的2層目錄結構,其中有些檔案夾是空的,但是,系統啟動起來後會在該目錄下建立相應的檔案,如/proc等。值得一提的是,我的Fedora10是只有文字介面,而沒有圖形化介面的,所以,檔案系統會小一些。建議大家如果想自己製作Linux 隨身碟啟動盤,最好也是利用沒有圖形化介面的檔案系統,這樣可以省不少空間。
在製作檔案系統時,尤其要注意/etc/fstab這個檔案的配置,如下:
注意:文中有關UUID的使用問題,請參考UUID一文。
- #/dev/sdb1 / ext3 defaults 1 1
- UUID=bbcbb70a-3da2-47cc-becd-5f3e3a162803 / ext3 defaults 1 1
- tmpfs /dev/shm tmpfs defaults 0 0
- devpts /dev/pts devpts gid=5,mode=620 0 0
- none /proc proc defaults 0 0
- [san@localhost san_fs]$ tree -d -L 2
- |-- bin
- |-- boot
- | |-- efi
- | |-- grub
- | `-- upgrade
- |-- dev
- |-- etc
- | |-- NetworkManager
- | |-- X11
- | |-- alternatives
- | |-- avahi
- | |-- blkid
- | |-- chkconfig.d
- | |-- cron.daily
- | |-- dbus-1
- | |-- default
- | |-- depmod.d
- | |-- dirmngr
- | |-- event.d
- | |-- fonts
- | |-- gcrypt
- | |-- gnupg
- | |-- init.d -> rc.d/init.d
- | |-- iproute2
- | |-- kernel
- | |-- ld.so.conf.d
- | |-- logrotate.d
- | |-- lvm
- | |-- makedev.d
- | |-- modprobe.d
- | |-- netplug
- | |-- netplug.d
- | |-- openldap
- | |-- opt
- | |-- pam.d
- | |-- pki
- | |-- popt.d
- | |-- ppp
- | |-- prelink.conf.d
- | |-- profile.d
- | |-- rc.d
- | |-- rc0.d -> rc.d/rc0.d
- | |-- rc1.d -> rc.d/rc1.d
- | |-- rc2.d -> rc.d/rc2.d
- | |-- rc3.d -> rc.d/rc3.d
- | |-- rc4.d -> rc.d/rc4.d
- | |-- rc5.d -> rc.d/rc5.d
- | |-- rc6.d -> rc.d/rc6.d
- | |-- rpm
- | |-- rwtab.d
- | |-- sasl2
- | |-- security
- | |-- selinux
- | |-- skel
- | |-- statetab.d
- | |-- sysconfig
- | |-- terminfo
- | |-- udev
- | |-- xdg
- | |-- xinetd.d
- | |-- yum
- | `-- yum.repos.d
- |-- home
- |-- lib
- | |-- bdevid
- | |-- dbus-1
- | |-- firmware
- | |-- i686
- | |-- kbd
- | |-- modules
- | |-- rtkaio
- | |-- security
- | |-- terminfo
- | |-- tls
- | |-- udev
- | `-- xtables
- |-- mnt
- |-- proc
- |-- root
- |-- sbin
- |-- selinux
- |-- sys
- |-- tmp
- |-- usr
- `-- var
(該目錄下還需建立lib lock run log等目錄,這可以根據系統起來後的提示確定 )85 directories
- Linux shell系統下執行export及使用man bash
- 啟動Linux Samba伺服器安裝配置實現構建
- Linux Trac配置安裝建立帳號檔案
- Linux mysql安裝修改root密碼服務
- Linux vsftpd安裝和啟動及命令列下登入,查看中文檔案出現亂碼