9.1 回顧分區和文件系統
1、 分區類型
? 主分區:總共最多只能分四個
? 擴展分區:只能有一個,也算作主分區的一種,也就是說主分區加擴展分區最多有四個。但是擴展分區不能存儲數據和格式化,必須再劃分成邏輯分區才能使用。
? 邏輯分區:邏輯分區是在擴展分區中劃分的,如果是IDE硬盤,Linux最多支持59個邏輯分區,如果是SCSI硬盤Linux最多支持11個邏輯分區
2、 分區表示方法
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [? ? 擴展分區? ? ? ? /dev/sda4? ? ? ]
主分區1? ? ? 主分區2? ? ? 主分區3? ? ? [邏輯分區1 邏輯分區2? 邏輯分區3]
/dev/sda1? /dev/sda2? /dev/sda3? /dev/sda5? /dev/sda6 /dev/sda7
(其中sd表示SCSI硬盤或者IDE硬盤,a表示第一塊硬盤)
其他分區方法:
? ? ? ? ? ? ? ? ? [? ? 擴展分區? ? ? ? /dev/sda2? ? ? ]
主分區1? ? [邏輯分區1 邏輯分區2? 邏輯分區3]? ?
/dev/sda1 /dev/sda5? /dev/sda6 /dev/sda7
注意:邏輯分區號一定是從5開始的
3、 文件系統
?ext2:是ext文件系統的升級版本,Red Hat Linux7.2版本以前的系統默認都是ext2 文件系統。1993年發布,最大支持16TB 的分區和最大2TB的文件(1TB=1024GB=1024*1024KB)
?ext3: ext3文件系統是ext2文件系統的升級版本,最大的區別就是帶日志功能,以在系統突然停止時提高文件系統的可靠性。支持最大16TB的分區和最大2TB的文件
?ext4:它是ext3文件系統的升級版。ext4 在性能、伸縮性和可靠性方面進行了大量改進。EXT4 的變化可以說是翻天覆地的,比如向下兼容EXT3、最大1EB文件系統和16TB文件、無限數量子目錄、Extents連續數據塊概念、多塊分配、延遲分配、持久預分配、快速FSCK、日志校驗、無日志模式、在線碎片整理、inode增強、默認啟用barrier等。是CentOS 6.3的默認文件系統? ? ? (1EB=1024PB=1024*1024TB)
9.2 文件系統常用命令
9.2.1 df命令、du命令、fsck命令和dumpe2fs命令
1、文件系統查看命令df
[root@localhost ~]# df? [選項] [掛載點]
選項:?
-a 顯示所有的文件系統信息,包括特殊文件系統,如 /proc、/sysfs?
-h 使用習慣單位顯示容量,如KB,MB或GB等?
-T 顯示文件系統類型?
-m 以MB為單位顯示容量?
-k 以KB為單位顯示容量。默認就是以KB為單位
2、統計目錄或文件大小
[root@localhost ~]# du [選項] [目錄或文件名]
選項:?
-a 顯示每個子文件的磁盤占用量。默認只統計 子目錄的磁盤占用量?
-h 使用習慣單位顯示磁盤占用量,如KB,MB? 或GB等?
-s 統計總占用量,而不列出子目錄和子文件的 占用量
如:
[root@localhost ~]# du -sh /tmp
80K? ? /tmp
[root@localhost ~]# du -sh /root
164M? ? /root
[root@localhost ~]# du -h /tmp
4.0K? ? /tmp/stickyTestDir/p
8.0K? ? /tmp/stickyTestDir
4.0K? ? /tmp/chattrDire/def
12K? ? /tmp/chattrDire
4.0K? ? /tmp/dtest
4.0K? ? /tmp/.webmin
4.0K? ? /tmp/.ICE-unix
4.0K? ? /tmp/wangwuDir
4.0K? ? /tmp/testDir
8.0K? ? /tmp/project/def
32K? ? /tmp/project
80K? ? /tmp
du命令和df命令的區別
?df命令是從文件系統考慮的,不光要考慮文件占用的空間,還要統計被命令或程序占用的空間(最常見的就是文件已經刪除,但是程序并沒有釋放空間)
?du命令是面向文件的,只會計算文件或目錄占用的空間
3、文件系統修復命令fsck(少用)
[root@localhost ~]# fsck [選項] 分區設備文件名
選項:
-a: 不用顯示用戶提示,自動修復文件系統
-y: 自動修復。和-a作用一致,不過有些文件系統只支 持-y
4、顯示磁盤狀態命令dumpe2fs
[root@localhost ~]# dumpe2fs 分區設備文件名
dumpe2fs命令為ext文件系統家族的命令,我的系統為CentOS7,文件系統為XFS,XFS默認支持ACL。可以使用 xfs_info? /dev/xxx查看'XFS`文件系統信息。
如:[root@localhost ~]# dumpe2fs /dev/sda1
9.2.2 掛載命令
1、查詢與自動掛載 (把設備和盤符連接起來的過程就叫做掛載)
[root@localhost ~]# mount [-l]
#查詢系統中已經掛載的設備,-l會顯示卷標名稱?
[root@localhost ~]# mount –a
#依據配置文件/etc/fstab的內容,自動掛載?
2、掛載命令格式 ( 把 [設備文件名] 掛載到 [掛載點] )
[root@localhost ~]# mount [-t 文件系統] [-L 卷標名]? \
[-o 特殊選項]? 設備文件名 掛載點
選項:?
-t 文件系統:加入文件系統類型來指定掛載的類型,可以ext3、ext4、iso9660等文件系統?
-L 卷標名: 掛載指定卷標的分區,而不是安裝設備文件名掛載?
-o 特殊選項:可以指定掛載的額外選項(圖239)
home下使用noexec權限,那么即使是root用戶也無法執行
如:重新掛載
[root@localhost ~]# mount -o remount,noexec /home
#重新掛載/boot分區,并使用noexec權限
[root@localhost sh]# cd /home
[root@localhost boot]# vi hello.sh
[root@localhost boot]# chmod 755 hello.sh?
[root@localhost boot]# ./hello.sh
[root@localhost boot]# mount -o remount,exec /home
#記得改回來啊,要不會影響系統啟動的
9.2.3 掛載光盤與U盤
1、掛載光盤
[root@localhost ~]# mkdir /mnt/cdrom/
#建立掛載點(一個空目錄)
[root@localhost ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/
#掛載光盤
[root@localhost ~]# mount? -t iso9660 /dev/sr0 /mnt/cdrom/?
上面兩句命令都是可行的。因為([root@localhost home]# ll /dev/cdrom
lrwxrwxrwx. 1 root root 3 5月? 8 18:19 /dev/cdrom -> sr0
說明 /dev/cdrom是//dev/sr0的軟鏈接)
(iso9660是系統默認的可以不寫)
故上面兩句命令也可以寫成:
[root@localhost ~]# mount? /dev/cdrom /mnt/cdrom/
#掛載光盤
[root@localhost ~]# mount? /dev/sr0 /mnt/cdrom/?
2、卸載命令
[root@localhost ~]# umount 設備文件名或掛載點?
[root@localhost ~]# umount /mnt/cdrom
或者 [root@localhost ~]# umount /dev/cdrom
或者 [root@localhost ~]# umount /dev/sr0
3、掛載U盤 (要在虛擬機內執行,不能在遠程工具)
[root@localhost ~]# fdisk –l
#查看U盤設備文件名
[root@localhost ~]# mkdir /mnt/usb
[root@localhost ~]# mount -t vfat /dev/sdb1 /mnt/usb/?
注意:Linux默認是不支持NTFS文件系統的 (FAT32識別為vfat)
4.卸載U盤
[root@localhost ~]# umount /dev/sdb1
或
[root@localhost ~]# umount /mnt/usb
9.2.4 支持NTFS文件系統
1、 下載NTFS-3G插件
http://www.tuxera.com/community/ntfs-3g- download/
2、 安裝NTFS-3G
[root@localhost ~]# tar -zxvf ntfs-3g_ntfsprogs-2013.1.13.tgz
#解壓
[root@localhost ~]# cd ntfs-3g_ntfsprogs-2013.1.13
#進入解壓目錄
[root@localhost ntfs-3g_ntfsprogs-2013.1.13]# ./configure
#編譯器準備。沒有指定安裝目錄,安裝到默認位置中
[root@localhost ntfs-3g_ntfsprogs-2013.1.13]# make
#編譯
[root@localhost ntfs-3g_ntfsprogs-2013.1.13]# make install
#編譯安裝
3、使用 [root@localhost ~]# mount -t ntfs-3g 分區設備文件名? 掛載點
如:mount -t ntfs-3g /dev/sdb1 /mnt/usb
4.卸載
[root@localhost ~]# umount /mnt/usb
卸載之后才可以拔出
9.3 fdisk分區
9.3.1 fdisk命令分區過程(手動掛載,重啟之后就失效了)
1、添加新硬盤
編輯此虛擬機
2、查看新硬盤
[root@localhost ~]# fdisk -l?
(id中 82是linux swap分區 83是Linux分區)
3、使用fdisk命令分區 (圖253)
[root@localhost ~]# fdisk /dev/sdb
-n:添加
-p:? 查看有哪些分區
4、重新讀取分區表信息 (若分區被占用)
[root@localhost ~]# partprobe?
5、格式化分區 (打格段,建立node表)
[root@localhost ~]# mkfs -t ext4 /dev/sdb1?
6、建立掛載點并掛載
[root@localhost ~]# mkdir /disk1
[root@localhost ~]# mount /dev/sdb1 /disk1/
[root@localhost ~]# mount /dev/sdb5 /disk1/
7.查看
[root@localhost ~]# df -h
Filesystem? ? ? Size? Used Avail Use% Mounted on
/dev/sda5? ? ? ? 16G? 2.6G? 13G? 18% ????/
tmpfs? ? ? ? ? ? ? ?498M? ? 0? 498M? 0% ????/dev/shm
/dev/sda1? ? ? 190M? 65M? 116M? 36%? ? /boot
/dev/sda2? ? ? 1.9G? 3.2M? 1.8G? 1% ????/home
/dev/sdb1? ? ? 2.0G? 3.1M? 1.9G? 1% ????/disk1
/dev/sdb5? ? ? 2.0G? 3.1M? 1.9G? 1% ????/disk1
9.3.2 分區自動掛載與fstab文件修復
注意:修改/etc/fstab這個文件要極其慎重,否則會造成系統崩潰
1、/etc/fstab文件
? 第一字段:分區設備文件名或UUID(硬盤通用唯一識別碼)
? 第二字段:掛載點
? 第三字段:文件系統名稱
? 第四字段:掛載參數
? 第五字段:指定分區是否被dump備份,0代表不備份,1 代表每天備份,2代表不定期備份
? 第六字段:指定分區是否被fsck檢測,0代表不檢測,其他數字代表檢測的優先級,那么當然1的優先級比2高? (數字越小優先級越高)
(可以通過 dumpe2fs -h /dev/sdb1 查看UUID)
2、分區自動掛載 [root@localhost ~]# vi /etc/fstab
…省略部分輸出…
/dev/sdb5? ? ? ? ? ? ? /disk5? ? ? ? ? ? ? ? ? ext4? ? defaults? ? ? ? 1 2
[root@localhost ~]# mount -a
#依據配置文件 /etc/fstab的內容,自動掛載
3、/etc/fstab文件修復
[root@localhost ~]# mount -o remount,rw /
#將根分區重新掛載為讀寫權限,然后再修改 /etc/fstab/錯誤的內容即可
9.4 分配swap分區(fdisk -l 查詢分區情況)
1、 新建swap分區
[root@localhost ~]# fdisk /dev/sdb?
新建一個邏輯分區 n , l ,默認開始柱面,+1G(分配1G),p(查看分區情況),t(改分區號),6(要修改的分區),82,w(保存退出)
別忘記把分區ID改為82(swap的分區號是82)
[root@localhost ~]# partprobe
2、 格式化
[root@localhost ~]# mkswap /dev/sdb6
(如果報錯,就重啟)
3、 加入swap分區
[root@localhost ~]# swapon /dev/sdb6
#把該分區加入系統真正的swap分區
[root@localhost ~]# swapoff /dev/sdb6
#取消swap分區
4、 swap分區開機自動掛載 (寫入系統文件,否則重啟會失效)
[root@localhost ~]# vi /etc/fstab
/dev/sdb6? ? ? ? swap? ? ? ? ? ? ? ? ? ? swap? ? defaults? ? ? ? 0 0?
(注意掛載點是swap,而不是 /swap 不是根分區下的Swap沒有這個目錄)
[root@localhost ~]# mount -a
看看是否報錯,如果沒有報錯,開機就會自動掛載
5、 free命令
[root@localhost ~]# free? -m
#查看內存與swap分區使用狀況
?cached(緩存):是指把讀取出來的數據保存在內存當中,當再次讀取時,不用讀取硬盤而直接從內存當中讀取,加速了數據的讀取過程
?buffer(緩沖):是指在寫入數據時,先把分散的寫入操作保存到內存當中,當達到一定程度再集中寫入硬盤,減少了磁盤碎片和硬盤的反復尋道,加速了數據的寫入過程