linux磁盤掛載、分區、格式化

我們使用一個linux磁盤大概可以分爲三步:

  • 添加硬盤/新建分區(fdisk)。(注:新建分區是非必須的。)
  • 格式化分區(mkfs.ext4)。
  • 掛載(加載分區mount)

1、添加硬盤,新建分區(fisk)

fdisk 是一款功能強大的分區工具,也是目前在Unix類操作系統中最流行的工具之一;分區工具老字號。(用法可參考,或者使用man fdisk)

(1)查看當前系統所有硬盤及分區情況:fdisk -l

通過上圖的fdisk -l的信息,我們知道此機器中掛載五個硬盤(或移動硬盤),分別是vda、vdb、vdc、vdd、vde;如果我們想查看單個硬盤情況,可以通過 fdisk -l /dev/vda或者fdisk -l /dev/vdb 來操作;/dev/vda下的/dev/vda1是vda的主分區,分區中還有擴展分區和邏輯分區的概念,在此不做擴展。

關於fdisk -l 一些數值的說明,以上圖的/dev/vde爲例。

Disk /dev/vde: 32.2 GB, 32212254720 bytes, 62914560 sectors #扇區個數
Units = sectors of 1 * 512 = 512 bytes  #柱面單元大小 (一個扇區作爲一個柱面)
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

a. 總磁盤大小: 32212254720 bytes(B) / 1024 = 104857600 KB / 1024 = 102400 MB / 1024 = 30 GB

b. 每個柱面的大小Units: 512 bytes (這裏一個柱面一個扇區)

c. 扇區個數是sectors: 32212254720 bytes / 512 bytes = 62914560

(2)在指定的硬盤(例:/dev/vda)上創建分區,命令爲:fdisk /dev/vda1 , 根據提示進行下一步操作,如:查看幫助(h),新建分區(n),刪除分區(d),查看分區情況(p),分區成功後,寫分區表並退出(w)

2、格式化分區(mkfs.ext4)

格式化分區的是指將分區格式化成不同的文件系統。
什麼是文件系統?文件系統指操作系統用於明確存儲設備或分區上的文件的方法和數據結構:即在存儲設備上組織文件的方法。就好比一個教室,同學們的坐的位置總是與桌子凳子排列的方式有關係。桌子,凳子怎麼擺放,就導致了同學坐的位置在哪裏。文件系統存放數據也是這麼個道理。Linux下的文件類型有ext2、ext3、ext4、xfs等等。
假設我們要對/dev/vbd進行格式化(注:此處/dev/vbd沒有分區,分區是非必須的),我們需要使用命令:

mkfs.ext4 /dev/vbd
意思是格式化/dev/vbd,格式化類型爲.ext4, mkfs.ext4支持一些參數,具體用法可參考:https://blog.csdn.net/tsz0000/article/details/85719204

比如我們項目中用到的:

#mkfs.ext4 -F /dev/vdb -m 0 -q -L gpt -J size=4096 -T largefile -i 16384

其中:

-F  強制格式化,有些mkfs工具版本格式化時檢測到已有文件系統數據會提示繼續進行的選擇。

-m reserved-blocks-percentage。指定預留block總個數的百分比。

-q    執行時不顯示任何信息。

-L volume-label。 設置文件的卷標。

-J journal-options。size=journal-size    指定日誌文件大小,默認單位MB,此處表示size=4096 表示日誌文件大小爲4G。如果這個值大於磁盤大小,在執行mkfs.ext4時,則會報錯:Journal size too big for filesystem.

-T fs_types。largefile    存儲大文件,文件單位1MB,默認情況下blocks是inodes的4倍,存儲基本單位是block 4k,意思就是全部存儲16K單位文件inodes可以最大限度把blocks用完。

-i bytes-per-inode。 指定"字節/inode"的比例  。

我們格式化好的/dev/vdd能用嗎?答案是不能,要想用這個磁盤我們還需要掛載。

3、掛載

linux系統的宗旨是一切皆文件。比如我們想要我們的文件存儲在/disk1目錄下,/disk1就是我們的根,那麼我們要在/dev/vdd中寫入文件時,首先要/disk1和/dev/vdd建立聯繫,這個就是掛載。這樣,之後我們訪問/disk1這個目錄時,我們實際上訪問的是/dev/vdd這個設備文件。這個目錄相當於/dev/vdd的入口,有了這個入口纔可以訪問磁盤。z將指定的一個目錄作爲掛載點目錄時,如果掛載點的目錄有文件,那麼文件會被隱藏。因此當我們需要掛載目錄時,最好新建一個空文件夾來作爲掛在點目錄。

比如此處命令應爲:

mount /dev/vdd /disk1 

mount命令還支持一些參數,具體可參考:EXT4文件系統 mount 參數翻譯

我項目中的用法:

mount -o rw,nodiratime,noatime,data=writeback,nobarrier,lazytime,delalloc /dev/vdd /disk1

執行完之後,怎麼怎樣查看到當前系統上所有磁盤的掛載信息?

(1)mount命令。

#mount|grep vd
/dev/vda1 on / type ext4 (rw,relatime,data=ordered)
/dev/vda1 on /home/plugins type ext4 (rw,relatime,data=ordered)
/dev/vda1 on /home/overlay type ext4 (rw,relatime,data=ordered)
/dev/vde on /disk1 type ext4 (rw,noatime,nodiratime,lazytime,nobarrier,data=writeback)

(2)df -h命令。信息顯示的內容包括文件的大小,已經使用的分區大小,總共可用分區的大小,使用率,以及掛載的位置,是比較常用的用法。

#df -h|grep vd
/dev/vda1        59G   15G   42G  26% /
/dev/vde         26G  334M   26G   2% /disk1

另外blkid命令可以查看對應分區的UUID(編號)。UUID唯一標識每一個分區,防止錯誤的掛載。除此之外,還會顯示分區的類型。

#blkid
/dev/vde: LABEL="gpt" UUID="c779e832-6dde-4d11-8e44-7451119dda9d" TYPE="ext4" 

以上,我們這種掛載方式爲臨時掛載,因此當我們重啓了Linux後,這種掛載會失效的。怎麼做到永久掛載呢?

方法:

①使用vim編輯 /etc/fstab ,在命令行直接輸入vim /etc/fstab 就可以編輯,實現開機自動掛載。

②在將光標移到UUID行,在命令模式下按o鍵進入插入模式,同時換行。將/dev/vdd的UUID編號,粘貼進來。/disk1掛載點目錄,ext4文件系統類型,後面的rw,nodiratime,noatime,data=writeback,nobarrier,lazytime,delalloc,是執行mount命令時,-o後面的參數。編寫完成後文件的內容如下:

#vi /etc/fstab 
# /etc/fstab
# Created by anaconda on Fri Jun  2 08:12:44 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=0559cb97-8399-4656-a928-2d2211064424 /                       ext4    defaults        1 1
/swapfile     none    swap    sw    0   0
UUID=c779e832-6dde-4d11-8e44-7451119dda9d /disk1     ext4   rw,nodiratime,noatime,data=writeback,nobarrier,lazytime,delalloc

bonus:

當我們完成上面的操作後,/disk1目錄下多出了一個目錄lost+found。那麼這個目錄是做什麼的呢?
lost+found:顧名思義,丟失然後找到。它是一個特殊的目錄,用來存放文件系統錯誤導致文件丟失的目錄,因此我們的一些數據是可以通過它來找到的。這個目錄是在分區的根目錄上,就是我們掛載的分區。

相關linux命令總結:

命令 含義
fdisk -l 查看當前磁盤的分區情況
fdisk /dev/vdd 讓硬盤進入分區模式,所分的磁盤在 /dev 下的 vdd這塊磁盤
mkfs.ext4 /dev/vdd 將 /dev下的 vdd磁盤格式化爲 ext4 的格式類型
mount /dev/vdd /disk1 將 /dev/vdd 掛載到 /disk1
mount 查看當前磁盤的詳細掛載信息
df -h 查看磁盤信息
blkid 查看磁盤的uuid


參考:https://blog.csdn.net/a1766855068/article/details/84942745

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章