如何在 Linux 分割區或邏輯卷中建立檔案系統

2019-04-10 09:14:00

學習在你的系統中建立一個檔案系統,並且長期或者非長期地掛載它。

在計算技術中,檔案系統控制如何儲存和檢索資料,並且幫助組織儲存媒介中的檔案。如果沒有檔案系統,資訊將被儲存為一個巨量資料塊,而且你無法知道一條資訊在哪結束,下一條資訊在哪開始。檔案系統通過為儲存資料的檔案提供名稱,並且在檔案系統中的磁碟上維護檔案和目錄表以及它們的開始和結束位置、總的大小等來幫助管理所有的這些資訊。

在 Linux 中,當你建立一個硬碟分割區或者邏輯卷之後,接下來通常是通過格式化這個分割區或邏輯卷來建立檔案系統。這個操作方法假設你已經知道如何建立分割區或邏輯卷,並且你希望將它格式化為包含有檔案系統,並且掛載它。

建立檔案系統

假設你為你的系統新增了一塊新的硬碟並且在它上面建立了一個叫 /dev/sda1 的分割區。

1、為了驗證 Linux 核心已經發現這個分割區,你可以 cat/proc/partitions 的內容,就像這樣:

[root@localhost ~]# cat /proc/partitionsmajor minor  #blocks  name 253            0   10485760 vda 253            1       8192000 vda1  11            0       1048575 sr0  11            1       374 sr1   8            0   10485760 sda   8            1   10484736 sda1 252            0       3145728 dm-0 252            1       2097152 dm-1 252            2       1048576 dm-2   8    16      1048576 sdb

2、決定你想要去建立的檔案系統種類,比如 ext4、XFS,或者其他的一些。這裡是一些可選項:

[root@localhost ~]# mkfs.<tab><tab>mkfs.btrfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.minix mkfs.xfs

3、為了這次練習的目的,選擇 ext4。(我喜歡 ext4,因為如果你需要的話,它可以允許你去壓縮檔案系統,這對於 XFS 並不簡單。)這裡是完成它的方法(輸出可能會因裝置名稱或者大小而不同):

[root@localhost ~]# mkfs.ext4 /dev/sda1mke2fs 1.42.9 (28-Dec-2013)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=0 blocks, Stripe width=8191 blocks194688 inodes, 778241 blocks38912 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=79901491224 block groups32768 blocks per group, 32768 fragments per group8112 inodes per groupSuperblock backups stored on blocks:     32768, 98304, 163840, 229376, 294912Allocating group tables: doneWriting inode tables: doneCreating journal (16384 blocks): doneWriting superblocks and filesystem accounting information: done

4、在上一步中,如果你想去建立不同的檔案系統,請使用不同變種的 mkfs 命令。

掛載檔案系統

當你建立好檔案系統後,你可以在你的作業系統中掛載它。

1、首先,識別出新檔案系統的 UUID 編碼。使用 blkid 命令列出所有可識別的塊儲存裝置並且在輸出資訊中查詢 sda1

[root@localhost ~]# blkid/dev/vda1: UUID="716e713d-4e91-4186-81fd-c6cfa1b0974d" TYPE="xfs"/dev/sr1: UUID="2019-03-08-16-17-02-00" LABEL="config-2" TYPE="iso9660"/dev/sda1: UUID="wow9N8-dX2d-ETN4-zK09-Gr1k-qCVF-eCerbF" TYPE="LVM2_member"/dev/mapper/test-test1: PTTYPE="dos"/dev/sda1: UUID="ac96b366-0cdd-4e4c-9493-bb93531be644" TYPE="ext4"[root@localhost ~]#

2、執行下面的命令掛載 /dev/sd1 裝置:

[root@localhost ~]# mkdir /mnt/mount_point_for_dev_sda1[root@localhost ~]# ls /mnt/mount_point_for_dev_sda1[root@localhost ~]# mount -t ext4 /dev/sda1 /mnt/mount_point_for_dev_sda1/[root@localhost ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/vda1 7.9G 920M 7.0G 12% /devtmpfs 443M 0 443M 0% /devtmpfs 463M 0 463M 0% /dev/shmtmpfs 463M 30M 434M 7% /runtmpfs 463M 0 463M 0% /sys/fs/cgrouptmpfs 93M 0 93M 0% /run/user/0/dev/sda1 2.9G 9.0M 2.7G 1% /mnt/mount_point_for_dev_sda1[root@localhost ~]#

命令 df -h 顯示了每個檔案系統被掛載的掛載點。查詢 /dev/sd1。上面的掛載命令使用的裝置名稱是 /dev/sda1。用 blkid 命令中的 UUID 編碼替換它。注意,在 /mnt 下一個被新建立的目錄掛載了 /dev/sda1

3、直接在命令列下使用掛載命令(就像上一步一樣)會有一個問題,那就是掛載不會在裝置重新啟動後存在。為使永久性地掛載檔案系統,編輯 /etc/fstab 檔案去包含你的掛載資訊:

UUID=ac96b366-0cdd-4e4c-9493-bb93531be644 /mnt/mount_point_for_dev_sda1/ ext4 defaults 0 0

4、編輯完 /etc/fstab 檔案後,你可以 umount /mnt/mount_point_for_fev_sda1 並且執行 mount -a 命令去掛載被列在 /etc/fstab 檔案中的所有裝置檔案。如果一切順利的話,你可以使用 df -h 列出並且檢視你掛載的檔案系統:

root@localhost ~]# umount /mnt/mount_point_for_dev_sda1/[root@localhost ~]# mount -a[root@localhost ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/vda1 7.9G 920M 7.0G 12% /devtmpfs 443M 0 443M 0% /devtmpfs 463M 0 463M 0% /dev/shmtmpfs 463M 30M 434M 7% /runtmpfs 463M 0 463M 0% /sys/fs/cgrouptmpfs 93M 0 93M 0% /run/user/0/dev/sda1 2.9G 9.0M 2.7G 1% /mnt/mount_point_for_dev_sda1

5、你也可以檢測檔案系統是否被掛載:

[root@localhost ~]# mount | grep ^/dev/sd/dev/sda1 on /mnt/mount_point_for_dev_sda1 type ext4 (rw,relatime,seclabel,stripe=8191,data=ordered)

現在你已經知道如何去建立檔案系統並且長期或者非長期的掛載在你的系統中。