如何在Linux分区或者逻辑卷上创建文件系统

时间:2020-01-09 10:37:52  来源:igfitidea点击:

在本文中,我将分享在Linux分区或者逻辑卷上创建文件系统并将其持久或者非持久地安装在Linux系统中的步骤。

在UNIX系统上,所有内容都是文件;如果某事不是文件,那是一个进程。

这句话是正确的,因为有一些特殊的文件不仅仅是文件(例如,命名为管道和套接字),而且为了简单起见,说一切都是文件是可以接受的概括。
与UNIX一样,Linux系统在文件和目录之间没有区别,因为目录只是包含其他文件名的文件。
程序,服务,文本,图像等都是文件。
根据系统,输入和输出设备(通常是所有设备)被视为文件。

在计算中,文件系统控制数据的存储和检索方式,并帮助组织存储介质上的文件。
没有文件系统,存储中的信息将是一大块数据,我们无法分辨一条信息其中停止而另一条信息其中开始。
文件系统通过为文件中存储数据的文件提供名称并在文件系统中的磁盘上维护文件和目录表(以及它们的开始/结束位置,总大小等)来帮助管理所有这些。

创建文件系统

在创建文件系统之前,我们需要一个分区。
为了本文的目的,我在虚拟机中添加了一个虚拟磁盘,并"创建了一个分区"/dev/sdb。

我们可以使用以下命令验证可用分区的列表

[root@node1 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda               8:0    0   30G  0 disk
├─sda1            8:1    0  512M  0 part  /boot
└─sda2            8:2    0 27.5G  0 part
  ├─centos-root 253:0    0 25.5G  0 lvm   /
  └─centos-swap 253:1    0    2G  0 lvm   [SWAP]
sdb               8:16   0    2G  0 disk
└─sdb1            8:17   0    2G  0 part
sr0              11:0    1 1024M  0 rom

我们还可以使用lsblk获取可用磁盘和分区的列表。

[root@node1 ~]# cat /proc/partitions
major minor  #blocks  name
  11        0    1048575 sr0
   8        0   31457280 sda
   8        1     524288 sda1
   8        2   28844032 sda2
   8       16    2097152 sdb
   8       17    2096128 sdb1
 253        0   26738688 dm-0
 253        1    2097152 dm-1
   9        0    2094080 md0

确定要创建哪种文件系统,例如ext4,XFS或者其他任何文件。
以下是一些选择:

[root@node1 ~]# mkfs. 
mkfs         mkfs.cramfs  mkfs.ext3    mkfs.fat     mkfs.msdos   mkfs.xfs
mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.minix   mkfs.vfat

对于本文,我将使用mkfs.ext4创建ext4类型的文件系统。

[root@node1 ~]# mkfs.ext4 /dev/sdb1
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=0 blocks
131072 inodes, 524032 blocks
26201 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

说明:

如果我们希望使用其他文件系统,请在上述步骤中使用相应的命令。

挂载文件系统

使用mkfs创建文件系统后,必须将其安装在操作系统中才能使用它来存储数据。

首先,确定新文件系统的UUID。
发出" blkid"命令以列出所有已知的块存储设备,并在输出中查找"/dev/sdb1":

[root@node1 ~]# blkid /dev/sdb1
/dev/sdb1: UUID="dac636ff-cde2-4f26-8bfc-a2d7b7ab5aa4" TYPE="ext4"

为此新创建的文件系统创建安装点

[root@node1 ~]# mkdir /mount_point_for_sdb1

接下来,将分区/dev/sdb1挂载到该挂载点

[root@node1 ~]# mount -t ext4 /dev/sdb1 /mount_point_for_sdb1

df -h命令显示在哪个挂载点上挂载了哪个文件系统。

[root@node1 ~]# df -h /mount_point_for_sdb1
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       2.0G  6.0M  1.9G   1% /mount_point_for_sdb1

用在blkid命令中标识的UUID替换它。
另外,请注意,创建了一个新目录以将/dev/sdb1挂载在/mount_point_for_sdb1下。

直接在命令行上使用mount命令的问题(如上一步中所述)是,挂载在重新启动后不会持久。

要持久地挂载文件系统,请编辑/etc/fstab文件以包括挂载信息:

UUID=dac636ff-cde2-4f26-8bfc-a2d7b7ab5aa4   /mount_point_for_sdb1   ext4    defaults     0 0

编辑/etc/fstab之后,我们可以卸载/mnt/mount_point_for_dev_sda1并运行命令mount -a来装载/etc/fstab中列出的所有内容。

[root@node1 ~]# umount /mount_point_for_sdb1/

接下来检查/dev/sdb1是否正确卸载

[root@node1 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   25G  4.0G   20G  17% /
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    1.9G     0  1.9G   0% /dev/shm
tmpfs                    1.9G  9.2M  1.9G   1% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1                488M  198M  255M  44% /boot
tmpfs                    379M   12K  379M   1% /run/user/42
tmpfs                    379M     0  379M   0% /run/user/0

下一步运行mount -a挂载在fstab中声明的所有分区。

[root@node1 ~]# mount -a

如果一切顺利,我们仍可以列出df -h并查看已挂载的文件系统:

[root@node1 ~]# df -h /mount_point_for_sdb1/
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       2.0G  6.0M  1.9G   1% /mount_point_for_sdb1