linux:磁盤的分割、檢驗、格式化與掛載


新增一顆磁碟:

  1.對磁碟進行分割,以建立可用的partition

  2.對該分割槽partition進行格式化(format),以建立系統可用的filesystem

  3.若要仔細點,可對剛剛建立的filesystem進行檢驗

  4.在linux上面,需要建立掛載點(亦即是目錄)將它掛載上去

一、觀察磁碟分割狀態(lsblk、blkid、parted)

  lsblk(list block device):列出系統上的所以磁碟列表

  

 

  blkid:獲取UUID

  

  補充(打錯字了):這樣識別碼就可以拿來作為掛載或者使用這個裝置檔案系統之用了

  

  parted:列出磁碟的分割表類型和分割資訊

  

  

二、磁盤分割(gdisk/fdisk)

  gdisk:GPT分割格式使用(以下都試使用gdisk來分割的)

  fdisk:MBR分割格式使用

  注意:gdisk /dev/sda不能寫錯gdisk /dev/sda1,因為partition是針對整個磁碟裝置的,不是針對某個partition的

  

  比較重要的指令:

    d:刪除一個分割槽

    n:添加一個新的分割槽

    q:退出,不保存修改

    w:保存修改后離開

    p:打印分區表(里面有目前磁碟的狀態)

  

  從上圖可以看出:

    a.該磁碟還可以進行額外的分割,因為它的最大磁區為83886080,但是它只用到65026047

    b.每一個分割槽的start磁區都是上一個分割槽的結束磁區加1

  強烈建議:你可以使用gdisk或者fdisk在磁碟上面隨便怎么弄,但是千萬不要按下【w】,千萬記得按下【q】,此外不要在GPT上面使用fdisk或者在MBR上面使用gdisk,因為指令的錯誤可能導致磁盤的分割記錄全部死光光;

  

  使用gdisk新增分割槽(分割過程):

  

  分割槽的檔案格式查詢:linux的基本就是8200(swap)/8300/8e00三種格式,windows的幾乎都用0700

  

  

  當確保分割槽正確的情況下,按下【w】:

    

  此時的磁碟還在使用當中,不能立即載入新的磁盤分割資訊,有兩種方式解決:

    1.關機重啟

    2.使用partprobe這個命令來處理

  

  partprobe:更新linux核心的分割表資訊

  

 

  磁碟格式化(mkfs.xfs):(注意【重點】:當你在系統中新分割了兩個partition后,分別將它們格式化了,然后把他們刪除后,你再去重新創建新的分區,這時候你會發現,分割的新的partition直接就格式化好了,剛好就是剛才刪除的那兩個格式化了的分區的filesystem,當你分割了兩個分割槽之后,第三個開始才沒有被格式化)

  

    

 舉例:xfs可以使用多個資料流來讀寫系統,以增加速度,因此那個agcount可以和CPU的核心數來做搭配

  

  跳過:XFS檔案系統for RAID效能優化(Optional)

  其他的檔案系統的mkfs

  

 

  檔案系統的檢驗(不經常用,也不希望去用):

    注意:通常只有你是root身份,且你的檔案系統有問題的時候才使用這個命令,否則正常情況下使用該命令,可能會造成對系統的危害

       執行xfs_repair/fsck.ext4時被檢查的分區務必不可掛載到系統上,既是需要在卸載的狀態下

    語法:xfs_repair [-fnd] 裝置名稱

    -f :後面的裝置其實是個檔案而不是實體裝置

    -n :單純檢查並不修改檔案系統的任何資料 (檢查而已)

    -d :通常用在單人維護模式底下,針對根目錄 (/) 進行檢查與修復的動作!很危險!不要隨便使用

    

    

    fsck.ext4:處理ext4檔案系統

    

 

檔案系統的掛載與卸載:

  單一檔案系統不應該重復掛載在不同的掛載點(目錄)中

  單一目錄不應該重復掛載多個檔案系統

  要作為掛載點的目錄,理論上應該是空目錄才對(如果原目錄不為空,那么掛載了檔案系統之后,該目錄下的東西會暫時的消失;直到你把這個檔案系統卸載之后,該目錄原來的東西又會出現)

  掛載的指令mount:

    /etc/filesystem:系統指定的測試掛載檔案系統類型的優先順序

    /proc/filesystem:linux系統已經載入的檔案系統類型

    /lib/modules/3.10.0-327.el7.x86_64/kernel/fs/:linux系統支援的檔案系統的驅動程序

磁碟與檔案系統參數修訂:

  檔案如何代表該裝置呢?根據主要(major)和次要(minor )代碼,linux的系統核心就可以識別對應的裝置了

  

  如吐所示:其中8為主要代碼,代表着/dev/sda,而0-5為次要代碼,一下是常見的一些主要次要代碼:

   

  mknod(某些時候需要手動處理裝置檔案):

  

  xfs_admin 修改xfs檔案系統的LABEL NAME 和UUID;

  

  疑問:因為mount后面接着檔名也可以掛載的,為什么要需要通過uuidgen來生成新的一串uuid來掛載呢?

  解:你沒有辦法指定這個磁碟在所以的linux中檔名一定都會是固定不變的(比如:一直都是/dev/sda4),但是在linux中uuid是唯一的,很難重復

 

tune2fs修改ext4檔案系統的LABEL NAME和UUID:

   

  

設定開機掛載(重要文件:/etc/fstab檔案系統表和/etc/mtab掛載點表),特殊裝置loop掛載(暫時不看):

  當你使用mount掛載了某個分區到某個目錄上面,只要你改變了該目錄的結構,其實就是改變了該分區(檔案系統的結果),而不是改變了這個目錄

  開機自動掛載(修改/etc/fstab文件)的限制:

    根目錄{/}是必須掛載的,而且一定要先於其他mount point(掛載點)掛載進來

    其他掛載點必須為己建立目錄,可任意只指定,但是必須遵循系統目錄架構原則(FHS)

    所有掛載點在同一時間內只能掛載一次

    所以partition在統一時間內只能掛載一次

    如果要進行卸載,則必須先將工作目錄移動到mount point(及其子目錄)之外

 /etc/fstab(檔案系統表):

    

    總共分為留個欄位:

      第一:磁碟裝置名/UUID/LABEL NAME 

      第二:掛載點

      第三:檔案系統

      第四:檔案系統參數

      

      第五:能否被dump備份指令作用(直接輸入0就好了)

      第六:是否以fsck檢測磁區(看看檔案系統是否完整clean),直接填寫0就行(因為xfs檔案系統會以它自己的方式去進行額外的檢測,fsck對xfs檔案系統不適用)

  設置開機掛載步驟:

    a>.查詢好需要掛載的檔案系統的uuid/label name/裝置檔名{xfs:xfs_admin -lu /dev/sda5 ; ext4:tune2fs -l /dev/sda4 | grep name/UUID 或者dumpe2fs -h /dev/sda4 | grep name/UUID}

    b>.vi /etc/fstab,添加需要掛載的檔案系統,比如:

      UUID=ce88f08a-0676-4fc5-af7d-8928ecd53fae /data/ext4 ext4 defaults 0 0

      UUID=701b1cfa-0e83-4986-86c8-0e5481262421 /data/xfs xfs defaults 0 0

    c>.最后測試一下寫入的語法有沒有錯誤:

      mount -a

      df 掛載目錄(查看是否掛載成功,以后開機就會自動掛載)

    d>./etc/fstab是開機時的設定檔,實際上filesystem的掛載信息是記錄在/etc/mtab和/proc/mounts這兩個檔案中的,每次我們更動filesystem時就會修改這兩個文件,萬一你在/etc/fstab中輸入的語法有錯誤,導致無法正常開機,就會進入單人維護模式,是只讀的 read only的狀態,也就無法更新這兩個文件了,解決辦法:  mount -n -o remount,rw /

     

記憶體置換空間(swap)之建置:

  先新建一個partition(類型8200):

    

  開始建置swap格式化、並觀察載入:

      

  添加開機自動掛載(/etc/fstab):  

    

  暫時跳過。。。。。。。

 內容參考自鳥哥linux私房菜,傳送門:http://linux.vbird.org/;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM