在日常运维过程中,我们难免会涉及到给系统添加新磁盘或是更换磁盘等操作,这里就涉及到磁盘挂在与卸载的操作问题,本文主要介绍如何在Linux系统下面挂载磁盘和卸载磁盘
问题和环境说明
解决:Disk /dev/sdb doesn't contain a valid partition table
虚拟机环境,linux系统下新添加了一块硬盘
磁盘挂在操作
- 虚拟机--设置--添加,选择硬盘添加
- 首先为磁盘创建文件系统:
mkfs.ext4 /dev/sdb
## mkfs.ext4 /dev/sdb -- 或 sudo mkfs -t ext4 /dev/sdb
- 创建挂载点: 创建挂载点,文件夹用来挂载磁盘
mkdir /mnt/sdb
- 挂载:
mount /dev/sdb /mnt/sdb
- 查看磁盘情况
fdisk -l
发现有问题:
Disk /dev/sdb doesn't contain a valid partition table 表示数据盘未分区
- 磁盘分区
fdisk /dev/sdb
跟着向导一步步做下去(如果不知道该输入什么,就输入“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
l list known partition types
m print this menu
n add a new partition
(后面的菜单省略,太长了)
这里我们要添加一个新的分区,所以输入“n”:
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-14098, default 1): (此处直接回车)
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-14098, default 14098): (此处直接回车)
Using default value 14098
Command (m for help): p
Disk /dev/sdb: 115.9 GB, 115964116992 bytes
255 heads, 63 sectors/track, 14098 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 14098 113242153+ 83 Linux
现在可以写入分区表了,所以输入“w”:
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
同步分区表
partprobe cat /proc/partitions
##查看系统识别的分区信息
mkfs.xfs /dev/vdb1
##格式化(安装文件系统)
mount /dev/sdb1 /mnt
##临时挂载
现在再fdisk -l,结果正常。
通过以下命令查看磁盘是否挂载成功
df -h
如果没发现,就自己重新通过如下命令挂载一次
mount /dev/sdb /mnt/sdb
## mount [被挂载的盘符] [目标目录,可以是自己创建的目录,也可以是既有的未加挂载点的目录]
配置启动自动挂载
(硬盘在系统启动自动挂载。在文件 /etc/fstab 中加入如下配置:)
/dev/sdb /mnt/sdb ext4 defaults 0 0
## Ubuntu18.04 多了一个字段,可以直接照抄默认的即可
/dev/sdb /mnt/sdb ext4 defaults,discard 0 0
## CenterOs 设置如下 /dev/vdb1 /mnt xfs defaults 0 0
使fstab文件配置生效
mount -a
永久挂载
echo "/dev/sdb1 /data ext4 rw 0 0 " >> /etc/fstab
卸载磁盘
直接运行如下命令:
umount /mnt/sdb
## umount [是挂载磁盘的目录]