二、磁盤管理
2.1 文件系統配置文件
- /etc/filesystems:系統指定的測試掛載文件系統類型
- /proc/filesystems:Linux 系統已經加載的文件系統類型
- /lib/modules/2.6.18-274.el5/kernel/fs/
- 文件系統類型的驅動所在目錄
- /etc/fstab
- /etc/mtab
2.2 linux 文件類型的顏色
- 藍色文件----------目錄
- 白色文件----------一般性文件,如文本文件,配置文件,源碼文件等
- 淺藍色文件----------鏈接文件,主要是使用 ln 命令建立的文件
- 綠色文件----------可執行文件,可執行的程序
- 紅色文件-----------壓縮文件或者包文件
- 灰色件-----------其他文件
- 紅色閃爍件-----------鏈接的文件有問題了
- 黃色件-----------設備文件
- -:普通文件
- d:目錄文件
- l:鏈接文件
- b:塊設備文件
- c:字符設備文件
- p:管道文件
2.3 文件系統操作命令
1. df
列出文件系統的整體磁盤使用情況
df -h
df -i

''' 文件系統容量已用 可用 已用% 掛載點 /dev/mapper/VolGroup00-LogVol00 16G 4.2G 11G 28% / /dev/sda1 99M 13M 81M 14% /boot tmpfs 1005M 0 1005M 0% /dev/shm '''

''' 文件系統 Inode (I)已用 (I)可用 (I)已用% 掛載點 /dev/mapper/VolGroup00-LogVol00 4186112 154441 4031671 4% / /dev/sda1 26104 36 26068 1% /boot tmpfs 257210 1 257209 1% /dev/shm .host:/ 0 0 0 - /mnt/hgfs '''
2. du
列出目錄所占空間
du -sh # 顯示當前目錄大小 du –sh / # 顯示/目錄下的所有目錄大小
3. dumpe2fs
顯示當前的磁盤狀態
4. ln:連接文件(快捷方式)
不加任何參數就進行連接,就是 hard link,
加上-s 就是 Symbolic link
hard link 不支持目錄和跨文件系統
5. Fdisk
顯示系統中的所有分區內容, 不支持大於 2T 的磁盤

fdisk -l ''' Disk /dev/sda: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders '''
6. Parted
2T以上磁盤分區工具。支持大於 2T 的磁盤,2T 以下的最好還是用 Fdisk 來分區。

parted /dev/hda print ''' Model: VMware Virtual IDE Hard Drive (ide) Disk /dev/hda: 2147MB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system 標志 1 32.3kB 101MB 101MB 主分區 ext3 2 101MB 357MB 256MB 主分區 linux-swap ''' # 刪除第 2 個分區 parted /dev/hda rm 2 # 創建分區 parted /dev/hda mkpart primary ext3 120MB 200MB ''' primary 代表主分區,還可以是extended 擴展分區,logical 邏輯分區 ext3 代表分區類型,120MB 是開始位置,最好是接上一分區的結束位置,200M 是結束位置 '''
7. partprobe
更新分區表/磁盤,用於重讀分區表。
當出現刪除文件后,出現仍然占用空間,可以 partprobe 在不重啟的情況下重讀分區
8. Mkfs
磁盤格式化
# Mkfs –t 文件系統格式 設備文件名(盤符) mkfs -t ext3 /dev/hda1
9. e2labe
設置磁盤卷標
# e2label 設備名稱 新 label 名稱,可以用 dumpe2fs 查看卷標 e2label /dev/hda1 aixi
10. Mount
掛載磁盤,命令格式:mount [-t vfstype] [-o options] device dir
# 重新掛載 mount –o remount,rw,auto / # 重新掛載根目錄,設置為可讀寫 mount –n –o remount,rw /

''' -t vfstype 指定文件系統的類型,通常不必指定。mount 會自動選擇正確的類型。常用類型有: 光盤或光盤鏡像:iso9660 DOS fat16 文件系統:msdos Windows 9x fat32 文件系統:vfat Windows NT ntfs 文件系統:ntfs Mount Windows 文件網絡共享:smbfsUNIX(LINUX) 文件網絡共享:nfs -o options 主要用來描述設備或檔案的掛接方式。常用的參數有: loop:用來把一個文件當成硬盤分區掛接上系統 ro:采用只讀方式掛接設備 rw:采用讀寫方式掛接設備 iocharset:指定訪問文件系統所用字符集 device 要掛接(mount)的設備。 dir 設備在系統上的掛接點(mount point)。 '''
10.1 掛接光盤鏡像文件
- 從光盤制作光盤鏡像文件。將光盤放入光驅,執行下面的命令。
cp /dev/cdrom /home/sunky/mydisk.iso # 或 dd if=/dev/cdrom of=/home/sunky/mydisk.iso # 注:執行上面的任何一條命令都可將當前光驅里的光盤制作成光盤鏡像文件/home/sunky/mydisk.iso
- 將文件和目錄制作成光盤鏡像文件,執行下面的命令。
mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir # 注:這條命令將/home/sunky/mydir 目錄下所有的目錄和文件制作成光盤鏡像文件/home/sunky/mydisk.iso,光盤卷標為:mydisk
- 光盤鏡像文件的掛接(mount)
mkdir /mnt/vcdrom # 注:建立一個目錄用來作掛接點(mount point) mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom # 注:使用/mnt/vcdrom 就可以訪問盤鏡像文件 mydisk.iso 里的所有文件了。
10.2 掛接移動硬盤
對 linux 系統而言,USB 接口的移動硬盤是當作 SCSI 設備對待的。插入移動硬盤之前,應先用 fdisk –l 或more /proc/partitions 查看系統的硬盤和硬盤分區情況。

# 對 linux 系統而言,USB 接口的移動硬盤是當作 SCSI 設備對待的。插入移動硬盤之前,應先用 fdisk –l 或 more /proc/partitions 查看系統的硬盤和硬盤分區情況。 fdisk -l ''' Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes 255 heads, 63 sectors/track, 8924 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 1 4 32098+ de Dell Utility /dev/sda2 * 5 2554 20482875 7 HPFS/NTFS /dev/sda3 2555 7904 42973875 83 Linux /dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA) /dev/sda5 7905 8924 8193118+ 82 Linux swap 在這里可以清楚地看到系統有一塊 SCSI 硬盤/dev/sda 和它的四個磁盤分區/dev/sda1 -- /dev/sda4, /dev/sda5 是分區/dev/sda4 的邏輯分區。接好移動硬盤后,再用 fdisk –l 或 more /proc/partitions 查看系統 的硬盤和硬盤分區情況 ''' fdisk -l ''' Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes 255 heads, 63 sectors/track, 8924 cylinders Units = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System /dev/sda1 1 4 32098+ de Dell Utility /dev/sda2 * 5 2554 20482875 7 HPFS/NTFS /dev/sda3 2555 7904 42973875 83 Linux /dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA) /dev/sda5 7905 8924 8193118+ 82 Linux swap Disk /dev/sdc: 40.0 GB, 40007761920 bytes 255 heads, 63 sectors/track, 4864 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdc1 1 510 4096543+ 7 HPFS/NTFS /dev/sdc2 511 4864 34973505 f Win95 Ext'd (LBA) /dev/sdc5 511 4864 34973473+ b Win95 FAT32 可以發現多了一個 SCSI 硬盤/dev/sdc 和它的兩個磁盤分區/dev/sdc1?、/dev/sdc2,其中/dev/sdc5 是/dev/sdc2 分區的邏輯分區。我們可以使用下面的命令掛接/dev/sdc1 和/dev/sdc5。 ''' mkdir -p /mnt/usbhd1 mkdir -p /mnt/usbhd2 # 注:建立目錄用來作掛接點(mount point) mount -t ntfs /dev/sdc1 /mnt/usbhd1 mount -t vfat /dev/sdc5 /mnt/usbhd2 # 注:對 ntfs 格式的磁盤分區應使用-t ntfs 參數,對 fat32 格式的磁盤分區應使用-t vfat 參數。若漢字文件名顯示為亂碼或不顯示,可以使用下面的命令格式。 mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd1 mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2 # linux 系統下使用 fdisk 分區命令和 mkfs 文件系統創建命令可以將移動硬盤的分區制作成 linux 系統所特有的 ext2、ext3 格式。這樣,在 linux 下使用就更方便了。使用下面的命令直接掛接即可。 mount /dev/sdc1 /mnt/usbhd1
10.3 掛接U盤
和 USB 接口的移動硬盤一樣對 linux 系統而言 U 盤也是當作 SCSI 設備對待的。使用方法和移動硬盤完全一樣。
10.4 掛接Windows文件共享
Windows 網絡共享的核心是 SMB/CIFS,在 linux 下要掛接(mount)windows 的磁盤共享,就必須安裝和使用 samba 軟件包。
現在流行的 linux 發行版絕大多數已經包含了 samba 軟件包,如果安裝 linux 系統時未安裝 samba 請首先安裝 samba。
當然也可以到 www.samba.org 網站下載......新的版本是 3.0.10 版。當 windows 系統共享設置好以后,就可以在 linux 客戶端掛接(mount)了,具體操作如下:
mkdir –p /mnt/samba # 注:建立一個目錄用來作掛接點(mount point) mount -t smbfs -o username=administrator,password=pldy123 //10.140.133.23/c$ /mnt/samba # 注:administrator 和 pldy123 是 ip 地址為 10.140.133.23 windows 計算機的一個用戶名和密碼,c$是這台計算機的一個磁盤共享如此就可以在 linux 系統上通過/mnt/samba 來訪問 windows 系統磁盤上的文件了。 # 以上操作在 redhat as server 3、redflag server 4.1、suse server 9 以及 windows NT 4.0、windows 2000、windows xp、windows 2003環境下測試通過。
10.5 掛接UNIX系統NFS文件共享
類似於 windows 的網絡共享,UNIX(Linux)系統也有自己的網絡共享,那就是 NFS(網絡文件系統),下面我們就以 SUN Solaris2.8 和 REDHAT as server 3 為例簡單介紹一下在 linux 下如何 mount nfs 網絡共享。
在 linux 客戶端掛接(mount)NFS 磁盤共享之前,必須先配置好 NFS 服務端。
- Solaris 系統 NFS 服務端配置方法如下:
# (1)修改 /etc/dfs/dfstab, 增加共享目錄 share -F nfs -o rw /export/home/sunky # (2)啟動 nfs 服務 /etc/init.d/nfs.server start(3)NFS 服務啟動以后,也可以使用下面的命令增加新的共享 share /export/home/sunky1 share /export/home/sunky2 # 注:/export/home/sunky 和/export/home/sunky1 是准備共享的目錄
- linux 系統 NFS 服務端配置方法如下:
(1)修改 /etc/exports,增加共享目錄 /export/home/sunky 10.140.133.23(rw) /export/home/sunky1 *(rw) /export/home/sunky2 linux-client(rw) # 注:/export/home/目錄下的 sunky、sunky1、sunky2 是准備共享的目錄,10.140.133.23、*、linux-client是被允許掛接此共享 linux 客戶機的 IP 地址或主機名。
# 如果要使用主機名 linux-client 必須在服務端主機/etc/hosts 文件里增加 linux-client 主機 ip 定義。格式如下:10.140.133.23 linux-client # (2)啟動與停止 NFS 服務 /etc/rc.d/init.d/portmap start (在 REDHAT 中 PORTMAP 是默認啟動的) /etc/rc.d/init.d/nfs start 啟動 NFS 服務 /etc/rc.d/init.d/nfs stop 停止 NFS 服務 # 注:若修改/etc/export 文件增加新的共享,應先停止 NFS 服務,再啟動 NFS 服務方能使新增加的共享起作用。使用命令 exportfs -rv 也可以達到同樣的效果。 - linux 客戶端掛接(mount)其他 linux 系統或 UNIX 系統的 NFS 共享
mkdir –p /mnt/nfs # 注:建立一個目錄用來作掛接點(mount point) mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs # 注:這里我們假設 10.140.133.9 是 NFS 服務端的主機 IP 地址,當然這里也可以使用主機名,但必須在本機/etc/hosts 文件里增加服務端 ip 定義。
# /export/home/sunky 為服務端共享的目錄。如此就可以在 linux 客戶端通過/mnt/nfs 來訪問其它 linux 系統或 UNIX 系統以 NFS 方式共享出來的文件了。 # 以上操作在 redhat as server 3、redflag server4.1、suse server 9 以及 Solaris 7、Solaris 8、Solaris 9 for x86&sparc 環境下測試通過。 - 權限問題:假設 server 端的使用者 jack,user id 為 1818,gid 為 1818,client 端也有一個使用者 jack,但是 uid 及 gid 是 1818。client 端的 jack 希望能完全讀寫 server 端的 /home/jack 這個目錄。server 端的 /etc/exports 是 這樣寫的: /home/jack *(rw,all_squash,anonuid=1818,anongid=1818) 這個的配置文件的意思是,所有 client 端的使用者存取 server 端 /home/jack 這 目錄時,都會 map 成 server 端的 jack (uid,gid=1818)。我 mount 的結果是
- client 端的 root 可以完全存取該目錄, 包括讀、寫、殺……等
- client 端的 jack (uid,gid=1818) 我可以做: rm -rf server_jack/* cp something server_jack/ mkdir server_jack/a
11. umount
將文件設備卸載
# 用設備文件名來卸載 umount /dev/hda1 # 用掛載點來卸載 umount /aixi # 如果提示設備忙,可以使用如下命令卸載,選項 –l 並不是馬上 umount,而是在該目錄空閑后再 umount。 umount -l /mnt/hda1 # 如果比較急,可用如下命令:-f 代表強制卸載 umount -f /mnt/hda1 #如果還不行,可使用 fuser -m –v /dev/hda1 來查詢是哪些程序在占用,結束這些程序進程即可卸載 sync && fuser -m /dev/hda1 –k # 使用這條命令后一定可以卸載
12. 交換分區
交換分區最大容量為 64G,最多只能建 32 個
創建交換分區
# 構建 swap 格式 fdisk /dev/hdan+容量pt(修改系統 ID)分區號82pw mkswap /dev/hda2(以上划分的分區號) # 加載即完成增加 swap swapon /dev/hda2 # 顯示目前使用的 Swap 設備 swapon –s
創建交換文件
# 創建大文件 dd if=/dev/hda1 of=/aixi/swap bs=1M count=64 mkswap /aixi/swap swapon /aixi/swap 完成
# 取消交換分區或者交換文件 swapoff /aixi/swap swapoff /dev/hda2
查看
free –m
相關知識點鏈接