Linux文件系統管理
分區類型:
MBR:最大支持2T硬盤,最多支持4個主分區
GPT:最大支持容量18EB(EB=1024PB,PB=1024TB),單個分區最大支持1EB容量,理論上支持無限個磁盤分區
文件系統:
ext4: ext4向下兼容於ext3與ext2;子目錄最高可達64000,使用“dir_nlink”功能後可以達到更高(雖然父目錄的link count會停止增加)。為了避免性能受到大量目錄的影響,ext4默認打開Htree(一種特殊的B樹)索引功能。該功能已經實現於Linux核心2.6.23版
df 查看掛載點和磁盤使用量
-a 顯示所有文件系統信息
-h 使用常用單位顯示容量,如MB、GB、TB
-i 顯示Inode信息
-T 顯示文件系統類型
du 統計目錄或文件大小
-a 顯示每個文件而非目錄的磁盤占用量
-h 使用常用單位顯示磁盤占用量
-s 統計總占用量而非子目錄和子文件的占用量
du和df的區別
df是從文件系統考慮的,不光要考慮文件占用的空間,還要統計被命令或程序占用的空間
du是面向文件的,只計算文件或目錄占用的空間
fsck 文件系統修復(適用於ext文件系統)
-a 不用顯示用戶提示,自動修復文件系統
-y 自動修復,和-a一致,不過有些文件系統只支持-y
xfs_repair 文件系統修復(適用於xfs文件系統)修復前,建議使用xfs_metadump備份元數據
-n 檢查文件系統是否損壞,損壞將會列出要執行的操作
修復失敗方法(慎重):
-L 清空日誌,可能丟失部分數據,然後執行xfs_repair
dumpe2fs 顯示磁盤狀態(適用於ext文件系統)
xfs_info 顯示磁盤狀態(適用於xfs文件系統)
mount 掛載文件系統
–a 依據/etc/fstab/的內容,自動掛載
-t 加入文件系統類型來指定掛載的類型,可以ext3、ext4、iso9660等文件系統
-o 可以指定掛載的額外選項
atime/noatime | 更新訪問時間/不更新訪問時間。訪問分區文件時,是否更新文件的訪問時間,默認更新 |
async/syna | 異步/同步,默認為異步 |
auto/noauto | 自動/手動,mount –a執行時,是否自動安裝/etc/fstab/文件內容掛載,默認為自動 |
defaults | 定義默認值,相當於rw,suid,dev,exec,auto,nouser,async這七個選項 |
exec/noexec | 執行/不執行,設定是否允許在文件系統中執行可執行文件,默認是exec允許 |
remount | 重新掛載已經掛載的文件系統,一般用於指定修改特殊權限 |
rw/ro | 讀寫/只讀,文件系統掛載時,是否具有讀寫權限,默認是w |
suid/nosuid | 具有/不具有suid權限,設定文件系統是否具有suid和sgid的權限,默認有 |
user/nouser | 允許/不允許普通用戶掛載,設定文件系統是否允許普通用戶掛載,默認不允許,只有root可以掛載分區 |
usrquota | 寫入代表文件系統支持用戶磁盤配額,默認不支持 |
grpquota | 寫入代表文件系統支持組磁盤配額,默認不支持 |
例:mount -o remount,noexec /home 不允許在文件系統中執行可執行文件(不要選根分區,我的centos7 /home不知道為什麽不能掛,直接掛根分區試試,成功後啥命令都無法執行了)
掛載光盤步驟:
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
卸載光盤:(註:不能在cdrom目錄卸載光盤,否則會提示目標忙)
umount /dev/sr0或
umount /mnt/cdrom
掛載U盤步驟
fdisk –l 先查看U盤設備名
mkdir /mnt/upan
[root@centos ~]# mount -t vfat /dev/sdb2 /mnt/upan
卸載U盤:(註:不能在upan目錄卸載U盤,否則會提示目標忙)
umount /dev/sdb2
支持NTFS文件系統-NTFS_3G
NTFS_3G安裝:(安裝源碼包必裝gcc)
下載NTFS_3G及其依賴的fuse-2.9.3
先安裝fuse-2.9.3
tar xzvf fuse-2.9.3.tar.gz
cd fuse-2.9.3
./configure&&make&&make install
安裝NTFS_3G
tar xzvf ntfs-3g-1.328.tgz
cd ntfs-3g-1.328
./configure&&make&&make install
mount -t ntfs-3g /dev/sdb4 /mnt/ntfs 掛載NTFS硬盤
fdisk -l 列出所有可用分區類型
fdisk /dev/sdb 為硬盤分區
a | 設置可引導標記 |
b | 編輯bsd磁盤標簽 |
c | 設置dos操作系統兼容標記 |
d | 刪除一個分區 |
l | 顯示已知的文件系統類型,82為swap分區,83為Linux分區 |
m | 顯示幫助 |
n | 新建分區 |
o | 建立空白dos分區表 |
p | 顯示分區列表 |
q | 不保存退出 |
s | 新建空白SUN磁盤標簽 |
t | 改變一個分區的系統ID |
u | 改變顯示記錄單位 |
v | 驗證分區表 |
w | 保存退出 |
x | 附加功能(僅專家) |
partprobe 讓內核同步分區信息
mkfs -t ext4 /dev/sdb1 格式化為ext4分區
/etc/fstab文件:
UUID=fd370686-828c-49bf-ba6c-c000d0a47ecc /boot xfs defaults 0 0
第一字段:分區設備文件名或UUID(硬盤通用唯一識別碼)
第二字段:掛載點
第三字段:文件系統名稱
第四字段:掛載參數
第五字段:指定分區是否被dump備份,0不備份,1每天備份,2不定期備份
第六字段:指定分區是否被fsck檢測,0代表不檢測,其他數字代表檢測的優先級,1的優先級比2的優先級高
修改此文件後可以根據mount -a來檢測錯誤
當開機提示分區找不到時,可輸入root用戶密碼,然後執行mount -o remount,rw /
然後編輯/etc/fstab改正錯誤,執行mount -a檢測錯誤
free 查看內存和swap分區使用情況
cached(緩存):是指讀取出來的數據保存在內存中,當再次讀取時,直接從內存讀取,加速數據的讀取
buffer(緩沖):是指寫入數據時,先把分散的寫入操作保存在內存中,當達到一定程度在集中寫入硬盤,減少磁盤碎片和硬盤反復尋道,加速數據寫入過程
增加swap分區:
[root@centos ~]# fdisk /dev/sdb
命令(輸入 m 獲取幫助):n
Select (default p): e #先創建邏輯分區,在創建擴展分區
分區號 (2-4,默認 2):2
起始 扇區 (1050624-4194303,默認為 1050624):
Last 扇區, +扇區 or +size{K,M,G} (1050624-4194303,默認為 4194303):+1024M
命令(輸入 m 獲取幫助):n
Select (default p): l #創建擴展分區
起始 扇區 (1052672-3147775,默認為 1052672):
Last 扇區, +扇區 or +size{K,M,G} (1052672-3147775,默認為 3147775):+512M
命令(輸入 m 獲取幫助):t #把分區文件系統更改為82 swap
分區號 (1,2,5,默認 5):5
Hex 代碼(輸入 L 列出所有代碼):82
命令(輸入 m 獲取幫助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 設備或資源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
#分區表讀取失敗,執行下列命令重新讀取分區表
[root@centos ~]# partprobe
[root@centos ~]# mkswap /dev/sdb5 #格式化
[root@centos ~]# swapon /dev/sdb5 #加入swap分區
[root@centos ~]# swapoff /dev/sdb5 #取消swap分區
[root@centos ~]# vim /etc/fstab #swap分區開機自動掛載
/dev/sdb5 swap swap defaults 0 0
Linux文件系統管理