初始化磁盘步骤
命令
先了解一下我们要使用到的 Linux 命名:
-
df
:用于显示目前 Linux 系统上的文件系统的磁盘使用情况统计 -
fdisk
:用于管理磁盘分区表 -
mount
:用于挂载 Linux 系统外的文件 -
partprobe
:用于重读分区表,当出现删除文件后,出现仍然占用空间。可以在不重启的情况下重读分区。 -
mkfs
:用于在设备上创建Linux文件系统
磁盘分区
使用fdisk命令进行磁盘分区
- 执行
fdisk -l
命令查看磁盘信息
假设新增磁盘为/dev/sda - 执行
fdisk /dev/sda
进入对该磁盘的操作 - 按照指引依次设置分区类型、分区编号、起始扇区、终止扇区,最后w写入分区表
- 执行
partprobe
将新的分区表同步到操作系统#查看系统磁盘信息,获取新增加的磁盘设备信息。 [root@192-168-101-78 ~]# fdisk -l #回显 Disk /dev/vda: 214.7 GB, 214748364800 bytes, 419430400 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 Disk label type: dos Disk identifier: 0x00007489 Device Boot Start End Blocks Id System /dev/vda1 * 2048 2099199 1048576 83 Linux /dev/vda2 2099200 419430399 208665600 83 Linux Disk /dev/sda: 1099.5 GB, 1099511627776 bytes, 2147483648 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 #可以看到,当前的服务器上有两个磁盘,一个/dev/vda,一个/dev/sda,/dev/vda 的是服务器自带的系统盘,/dev/sda的就是新购买的数据盘,还没有进行过分区操作。
#对新增的数据盘进行分区操作 #执行 fdisk /dev/sda 进入对该磁盘的操作 #按照指引依次设置分区类型、分区编号、起始扇区、终止扇区,最后w写入分区表 [root@192-168-101-78 ~]# fdisk /dev/sda Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0xde262ecd. #输入m查看命令使用说明: Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition g create a new empty GPT partition table G create an IRIX (SGI) partition table l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) #输入 n,回车新建分区 Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended #这里我们可以看到有两种分区类型:primary(主分区)和 extended(扩展分区),这里选择创建主分区,输入 p 回车,会提示输入一些信息 Select (default p): p #由于这个磁盘是全新的,没有任何分区,所以设置分区编号为 1,其他的为默认值,即可创建新的分区。 Partition number (1-4, default 1): 1 #其他的为默认值,回车即可 First sector (2048-2147483647, default 2048): Using default value 2048 #其他的为默认值,回车即可 Last sector, +sectors or +size{K,M,G} (2048-2147483647, default 2147483647): Using default value 2147483647 Partition 1 of type Linux and of size 1024 GiB is set #创建完分区后,输入 p 即可查看新创建的分区信息 Command (m for help): p Disk /dev/sda: 1099.5 GB, 1099511627776 bytes, 2147483648 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 Disk label type: dos Disk identifier: 0xde262ecd Device Boot Start End Blocks Id System /dev/sda1 2048 2147483647 1073740800 83 Linux #将分区结果写入分区表中,确认分区信息后,输入 w 回车即可将分区结果写入分区表中。如果之前分区操作有误,请输入 q,则会退出 fdisk 分区工具,之前的分区结果将不会被保留。 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. #将新的分区表变更同步至操作系统,partprobe 命令可以在不重启系统的情况下重读分区表 [root@192-168-101-78 ~]# partprobe /dev/sda
磁盘格式化
使用mkfs(make file system)命令进行磁盘的格式化
假设上一步设置的分区编号为1
执行 mkfs -t ext4
/dev/sda1进行格式化
[root@192-168-101-78 ~]# fdisk -l
Disk /dev/vda: 214.7 GB, 214748364800 bytes, 419430400 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
Disk label type: dos
Disk identifier: 0x00007489
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 2099199 1048576 83 Linux
/dev/vda2 2099200 419430399 208665600 83 Linux
Disk /dev/sda: 1099.5 GB, 1099511627776 bytes, 2147483648 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
Disk label type: dos
Disk identifier: 0xde262ecd
Device Boot Start End Blocks Id System
/dev/sda1 2048 2147483647 1073740800 83 Linux
#设置文件系统格式,执行以下命令,将新建分区文件系统设为系统所需格式。格式:mkfs-t文件系统格式 分区
#执行 mkfs -t ext4 /dev/sda1进行格式化
[root@192-168-101-78 ~]# mkfs -t ext4 /dev/sda1
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
67108864 inodes, 268435200 blocks
13421760 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2415919104
8192 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
#格式化需要等待一段时间,请观察系统运行状态,不要退出。不同文件系统支持的分区大小不同,请根据您的业务需求选择合适的文件系统。
[root@192-168-101-78 ~]#
挂载磁盘
- 如果挂载到新的挂载点,直接
mkdir /mnt/data
新建目录,然后mount /dev/sda1 /mnt/data
即可 - 如果挂载到已有的挂载点,需要先
mount /dev/sda1 /mnt/data
将磁盘挂载到/mnt/data
上,然后将原有路径下的内容mv到/mnt下,最后再mount回原路径 - 执行
df -hT
查看磁盘挂载信息
[root@192-168-101-78 ~]# ll /mnt/
total 0
#新建挂载目录
[root@192-168-101-78 ~]# mkdir /mnt/oss_data_0
[root@192-168-101-78 ~]# ll /mnt/
total 0
drwxr-xr-x 2 root root 6 Jan 14 10:41 oss_data_0
[root@192-168-101-78 ~]# ll /mnt/oss_data_0/
total 0
[root@192-168-101-78 ~]#
#挂载磁盘分区
[root@192-168-101-78 ~]# mount /dev/sda1 /mnt/oss_data_0
[root@192-168-101-78 ~]# ll /mnt/oss_data_0/
total 16
drwx------ 2 root root 16384 Jan 14 10:54 lost+found
#使用 df -h 查看挂载结果
[root@192-168-101-78 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda2 199G 2.0G 197G 1% /
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 8.7M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/vda1 1014M 179M 836M 18% /boot
tmpfs 1.6G 0 1.6G 0% /run/user/0
/dev/sda1 1008G 77M 957G 1% /mnt/oss_data_0
#表示新建分区 /dev/sda1 已挂载至 /mnt/oss_data_0,此时已经可以使用新增加的数据盘了。但是一旦重启云服务器,挂载就会失效,所以我们需要设置自动挂载磁盘。
[root@192-168-101-78 ~]#
#获取磁盘分区的 UUID 信息;执行如下命令,查询磁盘分区的 UUID。
[root@192-168-101-58 ~]# blkid /dev/sda1
/dev/sda1: UUID="cf8b577c-85c8-4302-89b4-7c73f4f6ebb3" TYPE="ext4"
[root@192-168-101-58 ~]# blkid /dev/vda2
/dev/vda2: UUID="17bd346d-03ac-4cd6-aa5b-4e52bc67a85c" TYPE="xfs"
[root@192-168-101-58 ~]# blkid /dev/vda1
/dev/vda1: UUID="31fb3061-d387-48b1-a9ff-09d5230e88cf" TYPE="xfs"
[root@192-168-101-58 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun Jul 21 00:00:25 2019
#
# 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=17bd346d-03ac-4cd6-aa5b-4e52bc67a85c / xfs defaults 0 0
UUID=31fb3061-d387-48b1-a9ff-09d5230e88cf /boot xfs defaults 0 0
#这里我们需要编辑 fstab 文件,fstab 文件包含了 Linux 系统可以挂载使用的文件系统的信息。
[root@192-168-101-58 ~]# vi /etc/fstab
[root@192-168-101-78 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun Jul 21 00:00:25 2019
#
# 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=17bd346d-03ac-4cd6-aa5b-4e52bc67a85c / xfs defaults 0 0
UUID=31fb3061-d387-48b1-a9ff-09d5230e88cf /boot xfs defaults 0 0
UUID=cf8b577c-85c8-4302-89b4-7c73f4f6ebb3 /mnt/oss_data_0 ext4 defaults 0 2
#以内容上仅为示例,具体请以实际情况为准,参数说明如下: - 第一列为 UUID,此处填写上面查询到的磁盘分区的 UUID。 - 第二列为磁盘分区的挂载目录,可以通过 df -TH 命令查询。 - 第三列为磁盘分区的文件系统格式, 可以通过 df -TH 命令查询。 - 第四列为磁盘分区的挂载选项,此处通常设置为defaults即可。 - 第五列为 Linux dump 备份选项。 - 0 表示不使用 Linux dump 备份。现在通常不使用 dump 备份,此处设置为 0 即可。 - 1 表示使用 Linux dump 备份。 - 第六列为 fsck 选项,即开机时是否使用 fsck 检查磁盘。 - 0表示不检验。 - 挂载点为(/)根目录的分区,此处必须填写 1。根分区设置为 1,其他分区只能从 2 开始,系统会按照数字从小到大依次检查下去。
#验证挂载信息,执行如下命令,卸载已挂载的分区
# umount 磁盘分区
[root@192-168-101-58 ~]# umount /dev/sda1
#执行如下命令,将 /etc/fstab 文件所有内容重新加载。
[root@192-168-101-58 ~]# mount -a
#执行如下命令,查询文件系统挂载信息。
[root@192-168-101-58 ~]# mount | grep /mnt
/dev/sda1 on /mnt/oss_data_0 type ext4 (rw,relatime,data=ordered)
[root@192-168-101-58 ~]#
自此,初始化一个新的 Linux 磁盘的工作已经完成。