兄弟連Linux(七)--檔案系統管理
1、回顧分割槽和檔案系統
1.1 分割槽型別
主分割槽:總共最多隻能分4個
擴充套件分割槽:只能有一個,也算作主分割槽的一種,也就是說主分割槽加擴充套件分割槽最多有4個。但是擴充套件分割槽不能儲存資料和格式化,必須再劃分成邏輯分割槽才能使用
邏輯分割槽:邏輯分割槽實在擴充套件分割槽中劃分的,如果是IDE硬碟,Linux最多支援59個邏輯分割槽,如果是SCSI硬碟,Linux最多支援11個邏輯分割槽。
1.2 分割槽表示法
分割槽的裝置檔名
主分割槽1 /dev/sda1
主分割槽2 /dev/sda2
主分割槽3 /dev/sda3
擴充套件分割槽 /dev/sda4
邏輯分割槽1 /dev/sda5
邏輯分割槽2 /dev/sda6
邏輯分割槽3 /dev/sda7
分割槽的裝置檔名
主分割槽1 /dev/sda1
擴充套件分割槽 /dev/sda2
邏輯分割槽1 /dev/sda5
邏輯分割槽2 /dev/sda6
邏輯分割槽3 /dev/sda7
1.3 檔案系統
ext2:是ext檔案系統的升級版本,RedHatLinux7.2版本以前的系統預設都是ext2檔案系統。1993年釋出,最大支援16TB的分割槽和最大2TB的檔案(1TB=1024GB=1024*1024KB)。
ext3:是ext2檔案系統的升級版本,最大的區別就是帶日誌功能,以在系統突然停止時提高檔案系統的可靠性。支援最大16TB的分割槽和最大2TB的檔案。
ext4:是ext3檔案系統的升級版本。ext4在效能、伸縮性和可靠性方面進行了大量改造。ext4的變化可以說是翻天覆地的,比如向下相容ext3、最大1EB的分割槽和16TB的檔案、無線數量子目錄,Extents連續資料塊概念,多塊分配、延遲分配、持久預分配、快速FSCK、日誌校驗、無日誌模式、線上碎片整理、inode增強、預設啟用barrier等。是CentOS6.3的預設檔案系統(1EB=1024PB=1024*1024TB)。
2、檔案系統常用命令
2.1 df命令、du命令、fsck命令和dump2fs命令
2.1.1 檔案系統檢視命令df
$ df -ahTmk 掛載點
-a 顯示所有的檔案系統資訊,包括託書檔案系統,如/proc、/sysfs
-h 使用習慣單位顯示容量,如KB,MB或GB等
-T 顯示檔案系統型別
-m 以MB為單位顯示容量
-k 以KB為單位顯示容量。預設就是以KB為單位
2.1.2 統計目錄和檔案大小
$ du -ahs 目錄或檔名
-a 顯示每個子檔案的磁碟佔用量。預設只統計子目錄的磁碟佔用量
-h 使用習慣單位顯示磁碟佔用量,如KB,MB或GB等
-s 統計總佔用量,而不列出子目錄和子檔案的佔用量
2.1.3 du命令和df明林的區別
df命令是從檔案系統考慮的,不光要考慮檔案佔用的空間,還要統計被命令或程式佔用的空間(最常見的就是檔案已經產出,但程式並沒有釋放空間)
du命令是面向檔案的,只會計算檔案或目錄佔用的空間
2.1.4 檔案系統修復命令fsck
$ fsck -ay 分割槽裝置檔名
-a 不用顯示使用者提示,自動修復檔案系統
-y 自動修復。和-a作用抑制,不過有些檔案系統只支援-y
2.1.5 顯示磁碟狀態命令dumpe2fs
$ dumpe2fs 分割槽裝置檔名
2.2 掛載命令
2.2.1 查詢與自動掛載
$ mount -l 查詢系統中已經掛載的裝置,-l 會顯示卷標名稱
$ mount -a 依據配置檔案 /etc/fstab的內容,自動掛載
2.2.2 掛載命令格式
$ mount [-t 檔案系統] [-L 卷標名] [-o 特殊選項]裝置檔名 掛載點
-t 檔案系統 加入檔案系統型別來制定掛載的型別,可以ext3(硬碟)、ext4(硬碟)、iso9660(光碟機)等檔案系統
-L 卷標名 掛在指定卷標的分割槽,而不是安裝裝置檔名掛載
-o 特殊選項 可以指定掛載的額外選項
mount -o 特殊選項下面列出常用mount特殊選項
atime/noatime 更新訪問時間/不更新訪問時間。訪問分割槽檔案時,是否更新檔案的訪問時間,預設為更新
async/sync 非同步/同步,預設為非同步
auto/noauto 自動/手動,mount -a命令執行時,是否會自動安裝/etc/fstab檔案內容掛載,預設為自動
defaults 定義預設值,相當於rw, suid, dev, exec, auto, nouser, async這七個選項
exec/noexec 執行/不執行,設定是否允許在檔案系統中執行可執行檔案,預設是exec允許
remount 重新掛載已經掛載的檔案系統,一般用於指定修改特殊許可權
rw/ro 讀寫/只讀,檔案系統掛載時,是否具有讀寫許可權,預設是rw
suid/nosuid 具有/不具有SUID許可權,設定檔案系統是否具有SUID和SGID的許可權,預設是具有
user/nouser 允許/不允許普通使用者掛載,設定檔案系統是否允許普通使用者掛載,預設是不允許,只有root可以掛載分割槽
usrquota 寫入代表檔案系統支援使用者磁碟配額,預設不支援
grpquota 寫入代表檔案系統支援組磁碟配額,預設不支援
$ mount -o remount,noexec /home 重新掛載/boot分割槽,並使用noexec許可權
$ cd /home
$ vi hello.sh
$ chmod 755 hello.sh
$ ./hello.sh
$ mount -o remount,exec /home 記得改回來哈,要不然會影響系統啟動的
2.3 掛載光碟與U盤
2.3.1 掛載光碟
$ mkdir /mnt/cdrom 建立掛載點
$ mount -t iso9660 /dev/cdrom /mnt/cdrom 掛載光碟
$ mount /dev/sr0 /mnt/cdrom 同前一命令
2.3.2 解除安裝命令
$ umount 裝置檔名或掛載點 光碟、U盤等介質,需要先解除安裝載拔除
$ umount /mnt/cdrom
2.3.3 掛載U盤
$ fdisk -l 檢視U盤裝置檔名
$ mount -t vfat /dev/sdb1 /mnt/usb/ 掛載U盤
注意:Linux預設是不支援NTFS檔案系統的
2.4 支援NTFS檔案系統
2.4.1 下載NTFS-3G外掛
http://www.tuxera.com/community/ntfs-3g-download/
2.4.2安裝NTFS-3G
$ tar -zxvf ntfs-3g_ntfsprogs-2013.1.13.tgz 解壓
$ cd ntfs-3g_ntfsprogs-2013.1.13 進入解壓目錄
$ ./configure 編譯器準備。未指定安裝目錄,安裝到預設位置
$ make 編譯
$ make install 編譯安裝
2.4.3 使用
$ fdisk -l 檢視NTFS格式硬碟檔名
$ mount -t ntfs-3g 分割槽裝置檔名 掛載點 掛載NTFS硬碟
3、fdisk分割槽
3.1 fdisk命令分割槽過程
3.1.1 新增新硬碟
3.1.2 檢視新硬碟
$ fdisk -l
3.1.3 使用fdisk命令分割槽
$ fdisk /dev/sdb/
fdisk互動指令說明
a 設定可引導標記
b 編輯bsd磁碟標籤
c 設定DOS作業系統相容標記
d 刪除一個分割槽
l 顯示已知的檔案系統型別。82為Linux swap分割槽,83為linux分割槽
m 顯示幫主選單
n 新建分割槽
o 建立空白DOS分割槽表
p 顯示分割槽列表
q 不儲存退出
s 新建空白SUN磁碟標籤
t 改變一個分割槽的系統ID
u 改變現實記錄單位
v 驗證分割槽表
w 儲存退出
x 附加功能
3.1.4 重新讀取分割槽表資訊
$ partprobe
3.1.5 格式化分割槽
$ mkfs -t ext4 /dev/sdb1 只有主分割槽和邏輯分割槽可以被格式化,擴充套件分割槽不行
3.1.6 建立掛載點並掛載
$ mkdir /disk1
$ mount /dev/sdb1 /disk1/
3.2 分割槽自動掛載與fstab修復
3.2.1 /etc/fstab 檔案
第1欄位:分割槽裝置檔案或UUID(硬碟通用唯一識別碼)
第2欄位:掛載點
第3欄位:檔案系統名稱
第4欄位:掛載引數
第5欄位:指定分割槽是否被dump備份,0代表不備份,1代表每天備份,2代表不定期備份
第6欄位:制定分割槽是否被fsck檢測,0代表不檢測,其他數字代表檢測的優先順序,那麼當然1的優先順序比2高
3.2.2 分割槽自動掛載
$ vi /etc/fstab
/dev/sdb1 /disk1 ext4 defaults 1 2
$ mount -a 依據配置檔案/etc/fstab的內容,自動掛載
3.2.3 /etc/fstab檔案修復
$ mount -o remount,rw /
4. 分配swap分割槽
4.1 free命令
$ free 檢視記憶體與swap分割槽使用情況
cached(快取)是指把讀取出來的資料儲存在記憶體當中,當再次讀取時,不用讀取硬碟而直接從記憶體當中讀取,加快了資料的讀取過程
buffer(緩衝)是指在寫入資料是,先把分散的寫入操作儲存到記憶體當中,當達到一定程度再集中寫入硬碟,減少了磁碟碎片核心硬碟的反覆尋到,加速了資料的寫入過程。
4.2 新建swap分割槽
$ fdisk /dev/sdb 別忘記把分割槽ID改為82
4.3 格式化
$ mkswap /dev/sdb6
4.4 加入swap分割槽
$ swapon /dev/sdb6 加入swap分割槽
$ swapoff /dev/sdb6 取消swap分割槽
4.5 swap分割槽開機自動掛載
$ vi /etc/fstab
/dev/sdb6 swap swap defaults 0 0