Linux 磁碟分割槽及檔案系統管理

築夢之人發表於2021-01-04

磁碟分割槽MBR

MBR(MasterBootRecord)在磁碟的0 sector,一共512位元組,分為三個部分,466位元組為bootloader程式,引導啟動作業系統的程式、64位元組為分割槽表,每16位元組標識一個分割槽,一共只能有四個分割槽(同時可以是3個主分割槽和N個邏輯分割槽)、最後2位元組用於表示MBR區域的有效性(55AA表示有效)

主分割槽標識:1-4

邏輯分割槽標識:5+

fdisk命令

fdisk提供了一個互動式介面來管理分割槽,它有許多子命令,分別用於不同的管理功能,所有的操作均在記憶體中完成,沒有直接同步到磁碟,直到使用w命令儲存到磁碟上

fdisk -l: 檢視所有磁碟分割槽情況

fdisk -l /dev/sda: 檢視指定磁碟分割槽情況

fdisk /dev/sda: 用於管理磁碟

cat /proc/partitions: 檢視核心識別到的所有分割槽

檔案系統管理工具

建立檔案系統工具

mkfs: mkfs.ext2,mkfs.ext3,mkfs.ext4,mkfs.xfs,mkfs.vfat,…

mkfs -t ext2等價於mkfs.ext2

  • ext系列檔案系統的管理工具

mke2fs [OPTIONS] device

-t {ext2|ext3|ext4}: 指明要建立的檔案系統型別,mkfs.ext4等價於mkfs -t ext4,還等價於mke2fs -t ext4

-b {1024|2048|4096}: 指定檔案系統塊大小

-L LABEL: 指明卷標

-j: 建立有日誌的檔案系統ext3,於是有mkfs.ext3等價於mkfs -t ext3,等價於mke2fs -t ext3,等價於mke2fs -j

-i #: 指明inode與位元組的比率,即每多少位元組建立一個inode

-N #: 直接指明要給此檔案系統建立多少inode

-m #: 指定預留空間百分比

-O [^]FEATURE: 以指定的特性建立目標檔案系統

  • e2label命令,用於檢視和設定卷標

e2label device: 檢視裝置label

e2labe device LABEL: 設定label

檢查及修復檔案系統工具

因程式意外終止或者系統崩潰等原因導致定稿操作非正常終止時,可能會造成檔案系統損壞;此時,應該檢測並修復檔案系統;建議離線進行;

fsck:fsck.ext2,fsck.ext3,fsck.ext4,fsck.xfs

-t fstype: 指明檔案系統型別,fsck -t ext4等價於fsck.ext4

-a: 無需互動而自動修復所有錯誤

-r: 互動式修復

e2fsck為ext系列檔案系統的專有工具

e2fsck [OPTIONS] device

-y: 對所有問題自動恢復yes

-f: 即使檔案系統處於clean狀態,也要強制進行檢測

檢視屬性的工具

dumpe2fs, tune2fs

dumpe2fs [-h] device: 顯示ext系列檔案系統的屬性資訊

tune2fs命令用於檢視或者修改ext系列檔案系統的某些屬性

-i: 檢視超級塊的內容

bklid device

blkid -L LABEL: 根據LABEL定位裝置

blkid -U UUID: 根據UUID定位裝置

調整檔案系統特性

tune2fs命令用於檢視或者修改ext系列檔案系統的某些屬性

-j: ext2改為ext3

-L LABEL: 修改卷標

-m #: 調整預留空間百分比

-O [^]FEATURE: 開啟或者關閉某種特性

-o [^]mount_options: 開啟或者關閉某種預設掛載項

swap檔案系統

Linux上的交換分割槽必須使用獨立的檔案系統,並且檔案系統的SystemID必須為82

建立swap裝置: mkswap命令mkswap [OPTION] device

-L LABEL: 指明卷標

-f: 強制建立

檔案系統的使用

首先需要被掛載:使用命令mount和umount

根檔案系統之外的其他檔案系統要想被訪問,必須通過關聯至根檔案系統上的某一個目錄來實現,此關聯操作就是掛載,此目錄為掛載點。掛載點必須事先存在,當掛載上另外的檔案系統時,裡面的內容將被隱藏。

掛載與選項

  • mount命令

-r: readonly,只讀掛載

-w: 讀寫掛載

-n: 預設情況下,裝置掛載或者解除安裝操作會同步更新到/etc/mtab檔案中,-n用於禁止此特性

-t vfstype: 指明要掛載的裝置上的檔案系統型別,多少情況可以省略,此時mount會通過blkid來判斷要掛載的裝置的檔案系統型別

-L LABEL: 通過卷標指定掛載裝置

-U UUID: 通過UUID指定要掛載的裝置

-o options: 掛載選項

sync/async: 同步/非同步操作
atime/noatime: 檔案或者目錄被訪問時是否更新其訪問時間戳
diratime/nodiratime: 目錄在被訪問時是否更新其訪問時間戳
remount: 從小掛載
acl: 支援使用facl功能,例如mount -0 acl device dir rune2fs -o acl device
ro: 只讀
rw: 讀寫
dev/nodev: 此裝置上是否執行建立裝置檔案
exec/noexec: 是否允許允許此裝置上的程式檔案
user/nouser: 是否允許普通使用者掛載此檔案系統
suid/nosuid: 是否允許程式檔案上的suid和sgid特殊許可權生效
defaults: rw,suid,dev,exec,auto,nouser,async,and relatime

可以實現將一個目錄繫結到另一個目錄: mount --bind 源目錄 目標目錄

掛載光碟: mount -r /dev/cdrom mount_point,光碟裝置檔案為/dev/cdrom/dev/dvd

掛載優盤: 需要事先識別U盤裝置,然後掛載,和掛載普通檔案系統一樣

檢視掛載情況

mount或者cat /etc/mtab或者cat /proc/mounts

解除安裝

umount device|dir: 解除安裝裝置

lsof MOUNT_POINTfuser -v MOUNT_POINT: 檢視哪個程式在佔用裝置

fuser -km MOUNT_POINT: 終止所有訪問某掛載點的程式

swap系統的使用

啟用:swapon [option] [device]

-a 定義在/etc/fstab檔案中的所有swap裝置

禁用:swapoff DEVICE

fstab

Linux系統啟動時會讀取/etc/fstab檔案,將其中的定義的每一個裝置進行掛載,有6個欄位的定義,依次是:

  1. 要掛載的裝置,可以用裝置檔案、LABEL、UUID、偽檔案系統(sysfs、proc、tmpfs等)

  2. 掛載點,如果是swap型別的裝置掛載點就是swap

  3. 檔案系統型別

  4. 掛載選項,如果有多個選項使用逗號分隔,例如defaults,acl,noatime,noexec

  5. 轉存頻率,0表示從不轉存,1表示每天備份,2表示隔一天備份

  6. 自檢次序,0表示不自檢,1表示首次自檢,通常只能是根檔案系統可用1,2,3,4,5,…表示次之

df和du命令

df命令

df [options]

-l: 僅顯示本地檔案系統的相關資訊

-h: 顯示human-readable

-i: 顯示inode的使用狀態而非blocks

du命令

du [options] FILE

-s: 只顯示總和情況

-h: human-readable

相關文章