Centos 中挂载一个新的磁盘

原理介绍:

在Linux世界中,一切皆目录,每一块硬盘分区对应 Linux 的一个目录,所以我们可以通过管理目录来管理硬盘分区,而将硬盘分区与文件目录关联的操作就成为“挂载”【mount】,反之为“卸载”【unmount】


1.查看系统磁盘挂载情况

  • ​lsblk​​:显示磁盘信息【listblock】
  • ​lsblk -f​​:显示详细信息
[root@hadoop2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 19G 0 part
│ ├─centos-root 253:0 0 21.9G 0 lvm /
│ └─centos-swap 253:1 0 2G 0 lvm [SWAP]
└─sda3 8:3 0 5G 0 part
└─centos-root 253:0 0 21.9G 0 lvm /
sdb 8:16 0 10G 0 disk
sr0 11:0 1 1024M 0 rom
[root@hadoop2 ~]# fdisk -l

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a93f1

设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
/dev/sda3 41943040 52428799 5242880 8e Linux LVM

磁盘 /dev/mapper/centos-root:23.5 GB, 23513268224 字节,45924352 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
  • 1、可以看到磁盘:/dev/sdb 是一个没有被使用的磁盘,磁盘大小为 10G
  • 2、下面操作将会把 /dev/sdb 磁盘切分出来 5G 挂载到系统盘中的 /data/add 目录下。切出磁盘的大小可以根据实际情况而定,如:100 M, 2G, 10T等
  • 3、系统盘目录需自己提前创建,如:/data/hadoop,/data/logs/,/home/data等

2. 对磁盘进行分区(切分出一个新的磁盘)

[root@hadoop2 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x9c232def 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):m
命令操作
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)

命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
  • fdisk /dev/sdb:分区指令
  • m:获取帮助
  • n:创建一个新的分区
  • p:列出分区情况
  • 1:指定分区号
  • +5G:指定分区大小
  • w:保存并退出,若不希望保存修改则输入 q 退出。

3.使新磁盘生效

partprobe /dev/sdb

# 查看磁盘情况
[root@hadoop2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 19G 0 part
│ ├─centos-root 253:0 0 21.9G 0 lvm /
│ └─centos-swap 253:1 0 2G 0 lvm [SWAP]
└─sda3 8:3 0 5G 0 part
└─centos-root 253:0 0 21.9G 0 lvm /
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 5G 0 part
sr0 11:0 1 1024M 0 rom

可以看到 /dev/sdb 磁盘中已经切出一个 5G 的磁盘(/dev/sdb1)了

4.格式化新磁盘

[root@hadoop2 ~]# mkfs -t xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=327680 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1310720, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

##(拓展)其他方式格式化
[root@hadoop2 ~]# mkfs.xfs /dev/sdb1
[root@hadoop2 ~]# mkfs.ext4 /dev/sdb1
[root@hadoop2 ~]# mkfs -t ext4 /dev/sdb1
  • fs:filesystem
  • t:type
  • xfs:是一种分区类型

此时,/dev/sdb1 分区已经格式化,分配到UUID,可以进行挂载(mount)

5.系统盘中创建新目录,将新磁盘挂载到系统盘中

# 在系统盘中创建 /data/add 目录
[root@hadoop2 ~]# mkdir -p /data/add

# 挂载新磁盘到系统盘目录
[root@hadoop2 ~]# mount /dev/sdb1 /data/add

# 查看挂载情况,已成功挂载
[root@hadoop2 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 22G 14G 8.4G 62% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 148M 867M 15% /boot
tmpfs tmpfs 378M 0 378M 0% /run/user/1000
/dev/sdb1 xfs 5.0G 33M 5.0G 1% /data/add
  • 挂载指令:mount /dev/xxx 挂载目录
  • 卸载指令:umount /dev/xxx 挂载目录

注:命令行的挂载重启后会失效

6. 永久挂载

# 1.修改/etc/fstab文件实现挂载
[root@hadoop2 ~]# vim /etc/fstab
# 在文件最后新增一行
/dev/sdb1 /data/add xfs defaults 0 0

# 2.执行mount -a 或重启系统后生效
[root@hadoop2 ~]# mount -a

7.验证:查看磁盘挂载情况

# 查看磁盘挂载情况
[hadoop@hadoop2 ~]$ df -kTh
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 22G 14G 8.4G 62% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sdb1 xfs 5.0G 33M 5.0G 1% /data/add
/dev/sda1 xfs 1014M 148M 867M 15% /boot
tmpfs tmpfs 378M 0 378M 0% /run/user/1000

8.尝试再挂载一个 2G 的磁盘:将 /dev/sdb2 挂载到 /data/add2

[hadoop@hadoop2 ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 19G 0 part
│ ├─centos-root 253:0 0 21.9G 0 lvm /
│ └─centos-swap 253:1 0 2G 0 lvm [SWAP]
└─sda3 8:3 0 5G 0 part
└─centos-root 253:0 0 21.9G 0 lvm /
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 5G 0 part /data/add
└─sdb2 8:18 0 2G 0 part /data/add2
sr0 11:0 1 1024M 0 rom