9.1 回顧分區(qū)和文件系統(tǒng)
1、 分區(qū)類(lèi)型
? 主分區(qū):總共最多只能分四個(gè)
? 擴(kuò)展分區(qū):只能有一個(gè),也算作主分區(qū)的一種,也就是說(shuō)主分區(qū)加擴(kuò)展分區(qū)最多有四個(gè)。但是擴(kuò)展分區(qū)不能存儲(chǔ)數(shù)據(jù)和格式化,必須再劃分成邏輯分區(qū)才能使用。
? 邏輯分區(qū):邏輯分區(qū)是在擴(kuò)展分區(qū)中劃分的,如果是IDE硬盤(pán),Linux最多支持59個(gè)邏輯分區(qū),如果是SCSI硬盤(pán)Linux最多支持11個(gè)邏輯分區(qū)
2、 分區(qū)表示方法
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [? ? 擴(kuò)展分區(qū)? ? ? ? /dev/sda4? ? ? ]
主分區(qū)1? ? ? 主分區(qū)2? ? ? 主分區(qū)3? ? ? [邏輯分區(qū)1 邏輯分區(qū)2? 邏輯分區(qū)3]
/dev/sda1? /dev/sda2? /dev/sda3? /dev/sda5? /dev/sda6 /dev/sda7
(其中sd表示SCSI硬盤(pán)或者IDE硬盤(pán),a表示第一塊硬盤(pán))
其他分區(qū)方法:
? ? ? ? ? ? ? ? ? [? ? 擴(kuò)展分區(qū)? ? ? ? /dev/sda2? ? ? ]
主分區(qū)1? ? [邏輯分區(qū)1 邏輯分區(qū)2? 邏輯分區(qū)3]? ?
/dev/sda1 /dev/sda5? /dev/sda6 /dev/sda7
注意:邏輯分區(qū)號(hào)一定是從5開(kāi)始的
3、 文件系統(tǒng)
?ext2:是ext文件系統(tǒng)的升級(jí)版本,Red Hat Linux7.2版本以前的系統(tǒng)默認(rèn)都是ext2 文件系統(tǒng)。1993年發(fā)布,最大支持16TB 的分區(qū)和最大2TB的文件(1TB=1024GB=1024*1024KB)
?ext3: ext3文件系統(tǒng)是ext2文件系統(tǒng)的升級(jí)版本,最大的區(qū)別就是帶日志功能,以在系統(tǒng)突然停止時(shí)提高文件系統(tǒng)的可靠性。支持最大16TB的分區(qū)和最大2TB的文件
?ext4:它是ext3文件系統(tǒng)的升級(jí)版。ext4 在性能、伸縮性和可靠性方面進(jìn)行了大量改進(jìn)。EXT4 的變化可以說(shuō)是翻天覆地的,比如向下兼容EXT3、最大1EB文件系統(tǒng)和16TB文件、無(wú)限數(shù)量子目錄、Extents連續(xù)數(shù)據(jù)塊概念、多塊分配、延遲分配、持久預(yù)分配、快速FSCK、日志校驗(yàn)、無(wú)日志模式、在線(xiàn)碎片整理、inode增強(qiáng)、默認(rèn)啟用barrier等。是CentOS 6.3的默認(rèn)文件系統(tǒng)? ? ? (1EB=1024PB=1024*1024TB)
9.2 文件系統(tǒng)常用命令
9.2.1 df命令、du命令、fsck命令和dumpe2fs命令
1、文件系統(tǒng)查看命令df
[root@localhost ~]# df? [選項(xiàng)] [掛載點(diǎn)]
選項(xiàng):?
-a 顯示所有的文件系統(tǒng)信息,包括特殊文件系統(tǒng),如 /proc、/sysfs?
-h 使用習(xí)慣單位顯示容量,如KB,MB或GB等?
-T 顯示文件系統(tǒng)類(lèi)型?
-m 以MB為單位顯示容量?
-k 以KB為單位顯示容量。默認(rèn)就是以KB為單位
2、統(tǒng)計(jì)目錄或文件大小
[root@localhost ~]# du [選項(xiàng)] [目錄或文件名]
選項(xiàng):?
-a 顯示每個(gè)子文件的磁盤(pán)占用量。默認(rèn)只統(tǒng)計(jì) 子目錄的磁盤(pán)占用量?
-h 使用習(xí)慣單位顯示磁盤(pán)占用量,如KB,MB? 或GB等?
-s 統(tǒng)計(jì)總占用量,而不列出子目錄和子文件的 占用量
如:
[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命令的區(qū)別
?df命令是從文件系統(tǒng)考慮的,不光要考慮文件占用的空間,還要統(tǒng)計(jì)被命令或程序占用的空間(最常見(jiàn)的就是文件已經(jīng)刪除,但是程序并沒(méi)有釋放空間)
?du命令是面向文件的,只會(huì)計(jì)算文件或目錄占用的空間
3、文件系統(tǒng)修復(fù)命令fsck(少用)
[root@localhost ~]# fsck [選項(xiàng)] 分區(qū)設(shè)備文件名
選項(xiàng):
-a: 不用顯示用戶(hù)提示,自動(dòng)修復(fù)文件系統(tǒng)
-y: 自動(dòng)修復(fù)。和-a作用一致,不過(guò)有些文件系統(tǒng)只支 持-y
4、顯示磁盤(pán)狀態(tài)命令dumpe2fs
[root@localhost ~]# dumpe2fs 分區(qū)設(shè)備文件名
dumpe2fs命令為ext文件系統(tǒng)家族的命令,我的系統(tǒng)為CentOS7,文件系統(tǒng)為XFS,XFS默認(rèn)支持ACL??梢允褂?xfs_info? /dev/xxx查看'XFS`文件系統(tǒng)信息。
如:[root@localhost ~]# dumpe2fs /dev/sda1
9.2.2 掛載命令
1、查詢(xún)與自動(dòng)掛載 (把設(shè)備和盤(pán)符連接起來(lái)的過(guò)程就叫做掛載)
[root@localhost ~]# mount [-l]
#查詢(xún)系統(tǒng)中已經(jīng)掛載的設(shè)備,-l會(huì)顯示卷標(biāo)名稱(chēng)?
[root@localhost ~]# mount –a
#依據(jù)配置文件/etc/fstab的內(nèi)容,自動(dòng)掛載?
2、掛載命令格式 ( 把 [設(shè)備文件名] 掛載到 [掛載點(diǎn)] )
[root@localhost ~]# mount [-t 文件系統(tǒng)] [-L 卷標(biāo)名]? \
[-o 特殊選項(xiàng)]? 設(shè)備文件名 掛載點(diǎn)
選項(xiàng):?
-t 文件系統(tǒng):加入文件系統(tǒng)類(lèi)型來(lái)指定掛載的類(lèi)型,可以ext3、ext4、iso9660等文件系統(tǒng)?
-L 卷標(biāo)名: 掛載指定卷標(biāo)的分區(qū),而不是安裝設(shè)備文件名掛載?
-o 特殊選項(xiàng):可以指定掛載的額外選項(xiàng)(圖239)
home下使用noexec權(quán)限,那么即使是root用戶(hù)也無(wú)法執(zhí)行
如:重新掛載
[root@localhost ~]# mount -o remount,noexec /home
#重新掛載/boot分區(qū),并使用noexec權(quán)限
[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
#記得改回來(lái)啊,要不會(huì)影響系統(tǒng)啟動(dòng)的
9.2.3 掛載光盤(pán)與U盤(pán)
1、掛載光盤(pán)
[root@localhost ~]# mkdir /mnt/cdrom/
#建立掛載點(diǎn)(一個(gè)空目錄)
[root@localhost ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/
#掛載光盤(pán)
[root@localhost ~]# mount? -t iso9660 /dev/sr0 /mnt/cdrom/?
上面兩句命令都是可行的。因?yàn)椋╗root@localhost home]# ll /dev/cdrom
lrwxrwxrwx. 1 root root 3 5月? 8 18:19 /dev/cdrom -> sr0
說(shuō)明 /dev/cdrom是//dev/sr0的軟鏈接)
(iso9660是系統(tǒng)默認(rèn)的可以不寫(xiě))
故上面兩句命令也可以寫(xiě)成:
[root@localhost ~]# mount? /dev/cdrom /mnt/cdrom/
#掛載光盤(pán)
[root@localhost ~]# mount? /dev/sr0 /mnt/cdrom/?
2、卸載命令
[root@localhost ~]# umount 設(shè)備文件名或掛載點(diǎn)?
[root@localhost ~]# umount /mnt/cdrom
或者 [root@localhost ~]# umount /dev/cdrom
或者 [root@localhost ~]# umount /dev/sr0
3、掛載U盤(pán) (要在虛擬機(jī)內(nèi)執(zhí)行,不能在遠(yuǎn)程工具)
[root@localhost ~]# fdisk –l
#查看U盤(pán)設(shè)備文件名
[root@localhost ~]# mkdir /mnt/usb
[root@localhost ~]# mount -t vfat /dev/sdb1 /mnt/usb/?
注意:Linux默認(rèn)是不支持NTFS文件系統(tǒng)的 (FAT32識(shí)別為vfat)
4.卸載U盤(pán)
[root@localhost ~]# umount /dev/sdb1
或
[root@localhost ~]# umount /mnt/usb
9.2.4 支持NTFS文件系統(tǒng)

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
#進(jìn)入解壓目錄
[root@localhost ntfs-3g_ntfsprogs-2013.1.13]# ./configure
#編譯器準(zhǔn)備。沒(méi)有指定安裝目錄,安裝到默認(rèn)位置中
[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 分區(qū)設(shè)備文件名? 掛載點(diǎn)
如:mount -t ntfs-3g /dev/sdb1 /mnt/usb
4.卸載
[root@localhost ~]# umount /mnt/usb
卸載之后才可以拔出
9.3 fdisk分區(qū)
9.3.1 fdisk命令分區(qū)過(guò)程(手動(dòng)掛載,重啟之后就失效了)
1、添加新硬盤(pán)
編輯此虛擬機(jī)
2、查看新硬盤(pán)
[root@localhost ~]# fdisk -l?
(id中 82是linux swap分區(qū) 83是Linux分區(qū))
3、使用fdisk命令分區(qū) (圖253)
[root@localhost ~]# fdisk /dev/sdb
-n:添加
-p:? 查看有哪些分區(qū)
4、重新讀取分區(qū)表信息 (若分區(qū)被占用)
[root@localhost ~]# partprobe?
5、格式化分區(qū) (打格段,建立node表)
[root@localhost ~]# mkfs -t ext4 /dev/sdb1?
6、建立掛載點(diǎn)并掛載
[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 分區(qū)自動(dòng)掛載與fstab文件修復(fù)
注意:修改/etc/fstab這個(gè)文件要極其慎重,否則會(huì)造成系統(tǒng)崩潰
1、/etc/fstab文件
? 第一字段:分區(qū)設(shè)備文件名或UUID(硬盤(pán)通用唯一識(shí)別碼)
? 第二字段:掛載點(diǎn)
? 第三字段:文件系統(tǒng)名稱(chēng)
? 第四字段:掛載參數(shù)
? 第五字段:指定分區(qū)是否被dump備份,0代表不備份,1 代表每天備份,2代表不定期備份
? 第六字段:指定分區(qū)是否被fsck檢測(cè),0代表不檢測(cè),其他數(shù)字代表檢測(cè)的優(yōu)先級(jí),那么當(dāng)然1的優(yōu)先級(jí)比2高? (數(shù)字越小優(yōu)先級(jí)越高)
(可以通過(guò) dumpe2fs -h /dev/sdb1 查看UUID)
2、分區(qū)自動(dòng)掛載 [root@localhost ~]# vi /etc/fstab
…省略部分輸出…
/dev/sdb5? ? ? ? ? ? ? /disk5? ? ? ? ? ? ? ? ? ext4? ? defaults? ? ? ? 1 2
[root@localhost ~]# mount -a
#依據(jù)配置文件 /etc/fstab的內(nèi)容,自動(dòng)掛載
3、/etc/fstab文件修復(fù)
[root@localhost ~]# mount -o remount,rw /
#將根分區(qū)重新掛載為讀寫(xiě)權(quán)限,然后再修改 /etc/fstab/錯(cuò)誤的內(nèi)容即可
9.4 分配swap分區(qū)(fdisk -l 查詢(xún)分區(qū)情況)
1、 新建swap分區(qū)
[root@localhost ~]# fdisk /dev/sdb?
新建一個(gè)邏輯分區(qū) n , l ,默認(rèn)開(kāi)始柱面,+1G(分配1G),p(查看分區(qū)情況),t(改分區(qū)號(hào)),6(要修改的分區(qū)),82,w(保存退出)
別忘記把分區(qū)ID改為82(swap的分區(qū)號(hào)是82)
[root@localhost ~]# partprobe
2、 格式化
[root@localhost ~]# mkswap /dev/sdb6
(如果報(bào)錯(cuò),就重啟)
3、 加入swap分區(qū)
[root@localhost ~]# swapon /dev/sdb6
#把該分區(qū)加入系統(tǒng)真正的swap分區(qū)
[root@localhost ~]# swapoff /dev/sdb6
#取消swap分區(qū)
4、 swap分區(qū)開(kāi)機(jī)自動(dòng)掛載 (寫(xiě)入系統(tǒng)文件,否則重啟會(huì)失效)
[root@localhost ~]# vi /etc/fstab
/dev/sdb6? ? ? ? swap? ? ? ? ? ? ? ? ? ? swap? ? defaults? ? ? ? 0 0?
(注意掛載點(diǎn)是swap,而不是 /swap 不是根分區(qū)下的Swap沒(méi)有這個(gè)目錄)
[root@localhost ~]# mount -a
看看是否報(bào)錯(cuò),如果沒(méi)有報(bào)錯(cuò),開(kāi)機(jī)就會(huì)自動(dòng)掛載
5、 free命令
[root@localhost ~]# free? -m
#查看內(nèi)存與swap分區(qū)使用狀況
?cached(緩存):是指把讀取出來(lái)的數(shù)據(jù)保存在內(nèi)存當(dāng)中,當(dāng)再次讀取時(shí),不用讀取硬盤(pán)而直接從內(nèi)存當(dāng)中讀取,加速了數(shù)據(jù)的讀取過(guò)程
?buffer(緩沖):是指在寫(xiě)入數(shù)據(jù)時(shí),先把分散的寫(xiě)入操作保存到內(nèi)存當(dāng)中,當(dāng)達(dá)到一定程度再集中寫(xiě)入硬盤(pán),減少了磁盤(pán)碎片和硬盤(pán)的反復(fù)尋道,加速了數(shù)據(jù)的寫(xiě)入過(guò)程