[yuan@jackycom ~]$ locale LANG=zh_CN.UTF-8 LC_CTYPE="zh_CN.UTF-8" LC_NUMERIC="zh_CN.UTF-8" LC_TIME="zh_CN.UTF-8" LC_COLLATE="zh_CN.UTF-8" LC_MONETARY="zh_CN.UTF-8" LC_MESSAGES="zh_CN.UTF-8" LC_PAPER="zh_CN.UTF-8" LC_NAME="zh_CN.UTF-8" LC_ADDRESS="zh_CN.UTF-8" LC_TELEPHONE="zh_CN.UTF-8" LC_MEASUREMENT="zh_CN.UTF-8" LC_IDENTIFICATION="zh_CN.UTF-8" LC_ALL=如果結果和我的一樣都是 UTF-8,也就是 fc3 的默認值,那麼掛載時需要加上 utf8 參數,就像這樣 (假設我們是將優盤 /dev/sda1 掛載到 /media/usbdisk) 代碼:
mkdir /media/usbdisk mount -o utf8,umask=0,dmask=0,fmask=111,users /dev/sda1 /media/usbdisk但是如果結果不是 zh_CN.UTF-8 而是 zh_CN.GB18030,或者 zh_CN.GB2312 的話,那麼掛載時需要使用 iocharset=cp936 參數,這樣看到的文件名才不是亂碼。就像這樣 (仍然是將優盤 /dev/sda1 掛載到 /media/usbdisk) 代碼:
mkdir /media/usbdisk mount -o iocharset=cp936,umask=0,dmask=0,fmask=111,users /dev/sda1 /media/usbdisk第二步,應當清楚要掛載什麼分區。通常,優盤是只有一個分區的。上面提到的 /dev/sda1 通常是第一塊優盤的第一個分區 (第一個分區也可能是 /dev/sda);而第二個分區可能是 /dev/sda2,或者 /dev/sda5。硬盤與優盤不同,通常有多個分區。遇到有多個分區時,優盤與硬盤同樣麻煩,必須運行 fdisk 可以看到要掛載的分區的情況。下面是我的硬盤的分區情況 代碼:
[root@jackycom ~]# fdisk -l /dev/hda
Disk /dev/hda: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 255 2048256 83 Linux
/dev/hda2 256 4865 37029825 5 Extended
/dev/hda5 256 893 5124703+ 83 Linux
/dev/hda6 894 1148 2048256 83 Linux
/dev/hda7 1149 1403 2048256 c Windows 95 fat 32 (LBA)
/dev/hda8 1404 1658 2048256 83 Linux
/dev/hda9 1659 2388 5863693+ 83 Linux
/dev/hda10 2389 3118 5863693+ 83 Linux
/dev/hda11 3119 4832 13767673+ 83 Linux
/dev/hda12 4833 4865 265041 82 Linux swap / Solaris假如輸出是上面那樣,我們要將 vfat 分區 /dev/hda7 掛載到 /mnt/D 目錄,我們可以這樣做
代碼:
mkdir -p /mnt/D mount -o utf8,umask=0,dmask=0,fmask=111,users /dev/hda7 /mnt/D 或者用這一句,仍然取決於 locale 命令的執行結果! mount -o iocharset=cp936,umask=0,dmask=0,fmask=111,users /dev/hda7 /mnt/D最後,我們可以考慮是不是將這條命令寫到配置文件裡,這樣開機時就會自動掛載這個分區了配置文件是 /etc/fstab。運行這樣的命令 代碼:
[root@jackycom ~]# cat /etc/fstab
# This file is edited by fstab-sync - see 'man fstab-sync' for details
/dev/hda1 / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
none /proc/bus/usb usbfs defaults 0 0
none /tmp tmpfs defaults 0 0
none /media tmpfs defaults 0 0
/dev/hda5 /usr ext3 defaults 1 2
/dev/hda6 /usr/local ext3 defaults 1 2
/dev/hda8 /home ext3 defaults 1 2
/dev/hda9 /usr/share ext3 defaults 1 2
/dev/hda10 /var/FTP/incoming auto defaults,noauto,users 0 2
/dev/hda12 swap swap defaults 0 0
none /var/lib/jack/tmp tmpfs defaults 0 0
/dev/hdc /media/cdrom auto pamconsole,fscontext=system_u:object_r:removable_t,exec,noauto,managed 0 0會輸出很多內容。以行為單位,每行保存了一個分區的配置。我們要掛載分區,只要照貓畫虎就可以了,把這樣的一行添加到 /etc/fstab 配置文件中:
代碼:
/dev/hda7 /mnt/D auto defaults,rw,users,utf8,umask=0,dmask=0,fmask=111 0 0 是不是應該使用這樣的一行,而不是上面那個呢?仍然取決於 locale 命令的執行結果! /dev/hda7 /mnt/D auto defaults,rw,users,iocharset=cp936,umask=0,dmask=0,fmask=111 0 0如何測試效果請先試驗一下配置文件是不是寫對了,再重啟系統!怎麼檢查新添加的配置是不是正確呢?只要先把 /mnt/D 卸載,查看一下當前掛載了哪些分區;再加載一次,再次查看當前掛載了哪些分區。具體執行的命令如下: 代碼:
umount /mnt/D mount再運行 代碼:
mount -a
mount看看中間有沒有什麼出錯的提示消息就可以了。如果配置文件正確的話,第二次執行不帶參數的 mount 命令時,會顯示出 /dev/hda7 已經掛載到了 /mnt/D。這時候就可以放心地重啟了可能的問題1. 如果你運行 locale 時,輸出的東西是亂七八糟的 (混合的,尤其是同時使用多種編碼值或者不指定編碼時),那麼還是先考慮一下將 locale 也就是語言環境變量的值調節為一致的之後,再進行其他操作吧。很多人喜歡在英文 locale 中工作,但是又要使用中文輸入法。在 fc3 中不必對 locale 做任何設置就可以辦到,只要將 scim 的配置文件 /etc/X11/xinit/xinput.d/scim 鏈接到 $HOME/.xinput.d/en_US 就可以默認在英文環境中啟動輸入法了。但是在 rh9 等早些的系統中,那時的 UTF-8 支持還沒有現在這麼好,一般會在 $HOME/.i18n 中設置 LC_CTYPE=zh_CN.GB18030,這時 mount 也需要 iocharset=cp936 才可以工作。2. 如果運行 fdisk /dev/sda 時,輸出的東西是亂七八糟的,那麼可能這塊優盤的分區方式是與其他優盤不一樣的方式,大約是軟驅方式 (?),優盤內部不再分區。很多播放器或支持啟動功能的優盤都使用這種分區方式。那麼掛載時,應當用 /dev/hda 而不是 /dev/hda1
代碼:
mount /dev/hda /media/usbdisk -o utf83. 注意只能由 root 來運行 fdisk 命令。4. /dev/hda 是說第一塊硬盤 harddisk a,一般的機器都只有一塊硬盤。/dev/sda 是說第一塊優盤。第二塊硬盤是 /dev/hdb, 優盤是 /dev/sdb,當然這只是說 IDE 硬盤和普通的優盤。如果是串行硬盤或者 SCSI,應該使用不同的設備文件。如果是 LVM 或者 raid,是不是還有別的設備呢?命令的可重復性mount -a 和 umount -a 可以任意運行多次如何撤銷所有操作?如果要取消自動掛載,只要把 /etc/fstab 中新加的這一行刪掉或者在行首添加一個 # 符號就可以了與其他方案的相容性關於手動掛載,大家都是一樣的辦法正文結束