在计算中,文件系统控制数据的存储和检索方式,并帮助组织存储介质上的文件。如果没有文件系统,存储中的信息将是一个大的数据块,你无法分辨一条信息的结束位置和下一条信息的开始位置。文件系统通过为存储数据的文件提供名称并维护文件和目录的表(包括它们在文件系统磁盘上的起始/结束位置、总大小等)来帮助管理所有这些。
在 Linux 中,当您创建硬盘分区或逻辑卷时,下一步通常是通过格式化分区或逻辑卷来创建文件系统。本教程假设您知道如何创建分区或逻辑卷,并且您只想格式化它以包含文件系统并挂载它。
创建文件系统
假设您刚刚向系统添加了一个新磁盘,并在其上创建了一个名为 /dev/sda1 的分区。
- 要验证 Linux 内核是否可以看到该分区,您可以 cat 输出 /proc/partitions,如下所示
[root@localhost ~]# cat /proc/partitions major 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
- 确定要创建的文件系统类型,例如 ext4、XFS 或其他任何类型。以下是一些选项
[root@localhost ~]# mkfs.<tab><tab> mkfs.btrfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.minix mkfs.xfs
- 出于本练习的目的,请选择 ext4。(我喜欢 ext4,因为它允许您在需要时缩小文件系统,这对于 XFS 来说并不那么直接。)以下是如何完成的(输出可能因设备名称/大小而异)
[root@localhost ~]# mkfs.ext4 /dev/sda1 mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=8191 blocks 194688 inodes, 778241 blocks 38912 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=799014912 24 block groups 32768 blocks per group, 32768 fragments per group 8112 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done
- 在上一步中,如果要创建不同类型的文件系统,请使用不同的 mkfs 命令变体。
挂载文件系统
创建文件系统后,您可以将其挂载到您的操作系统中。
- 首先,识别新文件系统的 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 ~]#
- 运行以下命令以挂载 /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 -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 7.9G 920M 7.0G 12% / devtmpfs 443M 0 443M 0% /dev tmpfs 463M 0 463M 0% /dev/shm tmpfs 463M 30M 434M 7% /run tmpfs 463M 0 463M 0% /sys/fs/cgroup tmpfs 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。另请注意,创建了一个新目录以将 /dev/sda1 挂载在 /mnt 下。
- 直接在命令行上使用 mount 命令的问题(如上一步所示)是,挂载不会在重启后持续存在。要永久挂载文件系统,请编辑 /etc/fstab 文件以包含您的挂载信息
UUID=ac96b366-0cdd-4e4c-9493-bb93531be644 /mnt/mount_point_for_dev_sda1/ ext4 defaults 0 0
- 编辑 /etc/fstab 后,您可以 umount /mnt/mount_point_for_dev_sda1 并运行命令 mount -a 以挂载 /etc/fstab 中列出的所有内容。如果一切顺利,您仍然可以列出 df -h 并看到您的文件系统已挂载
root@localhost ~]# umount /mnt/mount_point_for_dev_sda1/ [root@localhost ~]# mount -a [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 7.9G 920M 7.0G 12% / devtmpfs 443M 0 443M 0% /dev tmpfs 463M 0 463M 0% /dev/shm tmpfs 463M 30M 434M 7% /run tmpfs 463M 0 463M 0% /sys/fs/cgroup tmpfs 93M 0 93M 0% /run/user/0 /dev/sda1 2.9G 9.0M 2.7G 1% /mnt/mount_point_for_dev_sda1
- 您还可以检查文件系统是否已挂载
[root@localhost ~]# mount | grep ^/dev/sd /dev/sda1 on /mnt/mount_point_for_dev_sda1 type ext4 (rw,relatime,seclabel,stripe=8191,data=ordered)
现在您知道如何创建文件系统并在您的系统中永久或非永久地挂载它了。
2 条评论