天天看點

linux檔案系統

一、linux主要的檔案系統類型

①ext(2/3/4) xfs ffs ufs jfs vfat ntfs

②交換檔案系統swap

③網絡檔案系統nfs smbfs

④分布式檔案系統ceph

⑤CD光牒檔案系統 isso9660

linux最傳統的檔案系統是使用的EXT,是以要了解linux的檔案系統,首先從ext開始。ext有ext2、ext3、ext4等ext2不支援日志功能。

二、建立分區

檢視分區

fdisk -l [DEVICE]..

建立分區

fdisk [DEVICE]

互動式界面的指令

p 顯示磁盤分區表

n new 建立分區

d delete 删除分區

t 修改分區系統的id

L 列出系統已經有的id

w 儲存退出

q 不儲存退出

腳本中怎麼進行互動式?以下為建立一個20G的邏輯分區

echo '

n

+20G

w'|fdisk /dev/sda

對于已經有分區在使用的磁盤來說,建立的分區需要核心重新讀取其分區

centos6 kpart -af [DEVICE]

         part -a [DEVICE] 

三、建立檔案系統(格式化)

mkfs -t FSTYPE [DEVICE]

例:mkfs -t ext3 sda3=mkfs.ext3 sda3

将磁盤sda3格式化成ext3檔案系統。

不過一般對于ext系統檔案系統我們通過mke2fs的指令,其功能将更強大

mke2fs 

  -t {ext2|ext3|ext4}:指定檔案系統

  -b {1024|2048|4096}:指定塊大小

  -L LABEL: 打标   mke2fs -L LABEL=e2label DEVICE LABEL

  -j: 相當于 -t ext3

  -i #: 每多少位元組給建立一個inode,此位元組數不應該少小塊大小

  -N #: 直接指定可用的inode數;

  -m #: 指定預留白間占整個分區空間的百分比;預設為5;

  -O:指定分區特性

blkid: 檢視指定塊裝置的資訊

 e2label:檢視或設定卷标

  e2label DEVICE [LABEL]

 檢視超級塊資訊:

  # tune2fs -l DEVICE

  # dumpe2fs -h DEVICE

 修改分區屬性:tune2fs

  塊大小無法調整;

  -j: ext2 --> ext3

  -L LABEL:修改卷标

  -m #: 修改預留白間百分比;

  -O [^]FEATURE: 啟用指定特性,特性前加^,表示關閉此種特性

  -o [^]mount-options: 開啟或關閉指定的挂載選項

 因程序意外中止或系統崩潰等情況導入寫入操作非正常中止時,可能會導緻檔案損壞;此時,應該修複檔案系統:

  注意:離線修複

  fsck

   -t fstype

   -a: 自動修複錯誤

   -r: 互動式修複錯誤

  e2fsck: 專用于修改ext系列檔案系統

   -y: 對問題自動回答為yes

   -f: 強制進行檢測

四、挂載

預設隻有管理者才有權限

  将額外的分區與根檔案系統上的某目錄建立關聯關系的過程;

   目錄中的原有檔案會被隐藏

  挂載點:另一個檔案系統的通路入口

  挂載: mount DEVICE MOUNT_POINT

   固定挂載點:/mnt, /media

   mount [option]... [-t fstype] [-o option]  裝置  挂載點

    挂載點:

     1、事先存在;

     2、使用空閑目錄;

    常用的挂載選項:

     -t fstype:指定檔案系統類型

     -r: readonly, 隻讀挂載

     -w: read and write, 讀寫挂載

     -L LABEL:以卷标方式指定裝置, mount -L MYDATA 挂載點

     -U UUID: 以UUID的方式指定裝置,mount UUID='uuid' 挂載點, mount -U uuid 挂載點

     -a: 自動挂載所有(/etc/fstab檔案中定義的)的支援自動挂載裝置

     -n: 挂載時,不更新/etc/mtab檔案

    -o option:

     async:異步I/O,資料寫操作先于記憶體完成,而後再根據某種政策同步至持久裝置中

     sync: 同步I/O,

     atime/noatime: 檔案和目錄被通路時是更新最近一次的通路時間戳

     auto/noauto:裝置是否支援mount的-a選項自動挂載

     diratime/nodiratime: 目錄被通路時是更新最近一次的通路時間戳

     dev/nodev: 是否支援在此裝置上使用裝置;

     exec/noexec: 是否允許執行此裝置上的二進制程式檔案

     suid/nosuid: 是否支援在此裝置的檔案上使用suid

     remount: 重新挂載,通常用于不解除安裝的情況下重新指定挂載選項

     ro: 隻讀

     rw: 讀寫

     user/nouser: 是否允許普通挂載此檔案裝置

     acl: 在此裝置是支援使用facl,預設不支援;

    例如:以指定挂載後支援acl為例:

     方法1:

      mount -o acl DEVICE MOUNT_POINT

     方法2:

      tune2fs -o acl DEVICE

       為裝置設定預設挂載選項

      mount DEVICE MOUNT_POINT

   檢視所有已經挂載的裝置:

    # mount

    # cat /proc/mounts

    # cat /etc/mtab

    解除安裝:挂載點沒有被程序通路時方可以解除安裝 ;

  解除安裝:umount DEVICE

     umount MOUNT_POINT

    檢視哪些程序正在通路挂載的裝置:

     fuser -v 挂載點

    中止正在此挂載點的程序:

     fuser -km 挂載點

  df: disk free

   -h: human-readable

   -i: 顯示inode的使用資訊而非預設的磁盤空間使用資訊

  du: disk usage  每個大小

   -s:  總大小(summary)

   -h:  顯示可識别的機關

五、swap分區

mkswap

  free: 檢視記憶體及交換分區的使用資訊

  啟用某交換分區裝置

   swapon [DEVICE]

    -a: all, 啟用所有交換分區

    -p #: 指定此交換裝置的優先級

  禁用某交換分區裝置

   swapoff [DEVICE]

    -a: 禁用所有

 自動挂載的裝置的配置檔案:/etc/fstab

  6字段:

   挂載的裝置:

    裝置檔案

    LABEL

    UUID

   挂載點:

   檔案系統類型

   挂載選項:

    挂載選項可以有多個,彼此間使用逗号分隔;

   轉儲頻率:

    0:從不轉儲

    1: 每天轉儲

    2: 每隔一天

   自檢次序:

    0:不自檢,額外建立的檔案系統都無須自動自檢

    1:首先自檢,通常隻有根檔案系統需要首先自檢

    2:次級自檢,不同的裝置可以使用同一個自檢次序

    3

    ...

繼續閱讀