centos系统添加硬盘后,有两种方式可以发现添加的硬盘:
- 重启服务器
- 通过命令
通过命令方式发现硬盘:
# 手动执行
echo "- - -" > /sys/class/scsi_host/host0/scan
# for语句执行
for i in {0..2};do echo "- - -" > /sys/class/scsi_host/host$i/scan;done
fdisk命令管理磁盘
命令 | 说明 |
-l | 命令参数,查看硬盘分区表 |
d(delete) | 删除一个分区 |
l(list) | 列出一个分区 |
m | 获取帮助信息 |
n(new) | 添加新的分区 |
p(print) | 打印分区列表 |
q(quit) | 不保存分区表退出 |
t(type) | 改变分区类型 |
w | 保存分区表退出 |
查看硬盘分区表
[root@docker-ce ~]# fdisk -l
磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000b7d11
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 125829119 61864960 8e Linux LVM
磁盘 /dev/mapper/centos-root:41.1 GB, 41120956416 字节,80314368 个扇区
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 字节
磁盘 /dev/mapper/centos-home:20.1 GB, 20073938944 字节,39206912 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
划分分区
[root@docker-ce ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xfda7581c 创建新的 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 获取帮助):p #打印分区表
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xfda7581c
设备 Boot Start End Blocks Id System
命令(输入 m 获取帮助):n #创建一个新的分区
Partition type: #分区的类型
p primary (0 primary, 0 extended, 4 free) #p是主分区
e extended #e是扩展分区
Select (default p): #默认主分区就行,直接回车
Using default response p
分区号 (1-4,默认 1): #默认分区号就行,直接回车
起始 扇区 (2048-20971519,默认为 2048): #起始位置,一般不要动,使用默认值就可以
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+3G #设置分区大小
分区 1 已设置为 Linux 类型,大小设为 3 GiB
命令(输入 m 获取帮助):n #创建一个新的分区
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e #分区类型为扩展分区
分区号 (2-4,默认 2):
起始 扇区 (6293504-20971519,默认为 6293504):
将使用默认值 6293504
Last 扇区, +扇区 or +size{K,M,G} (6293504-20971519,默认为 20971519):+3G
分区 2 已设置为 Extended 类型,大小设为 3 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l # 添加逻辑分区
分区号 (3,4,默认 3):
起始 扇区 (12584960-20971519,默认为 12584960):
将使用默认值 12584960
Last 扇区, +扇区 or +size{K,M,G} (12584960-20971519,默认为 20971519):+3G
分区 3 已设置为 Linux 类型,大小设为 3 GiB
命令(输入 m 获取帮助):p #打印分区列表
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xfda7581c
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 6293503 3145728 83 Linux
/dev/sdb2 6293504 12584959 3145728 5 Extended
/dev/sdb3 12584960 18876415 3145728 83 Linux
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
查看当前磁盘分区情况
[root@docker-ce ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb3
#如果磁盘分区情况没有显示出来,那么就是用下面命令刷新以下就行了
[root@docker-ce ~]# partprobe /dev/sdb
[root@docker-ce ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb3
文件系统(格式化分区磁盘)
就像windows主机有ntfs和fat32格式的磁盘类型一样,Linux也有许多不同的文件系统,使用分区磁盘之前需要格式化分区磁盘为指定类型的文件系统。
磁盘分区使用的整体流程如下:
现在将刚刚分区的sdb1创建为xfs格式的文件系统,使用的命令是mkfs.xfs
,不同的命令还可以创建不同的文件系统,比如ext4、ext3等等。
[root@docker-ce ~]# mkfs.
mkfs.btrfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.fat mkfs.minix mkfs.msdos mkfs.vfat mkfs.xfs
[root@docker-ce ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=196608 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=786432, 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
文件挂载
挂载点设置
1.可以把挂载点设置在现有目录下
挂载
如果直接挂载在现有的目录上,原目录中内容就会“消失”而显示新挂载点的内容。原有目录内容其实并没有消失,只不过是目录不再指向原有内容了。
挂载使用的命令是mount,以下是示例。
#首先在挂载前,使用命令产看挂载情况
[root@docker-ce ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 974M 0 974M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 11M 980M 2% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/mapper/centos-root 39G 4.8G 34G 13% /
/dev/sda1 1014M 172M 843M 17% /boot
/dev/mapper/centos-home 19G 33M 19G 1% /home
tmpfs 199M 36K 199M 1% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
#查看media目录下的情况
[root@docker-ce ~]# ls /media
local
#将sdb1挂载到media目录下
[root@docker-ce ~]# mount /dev/sdb1 /media/
#再次查看media目录下的任容会发现,目录下的文件消失了
[root@docker-ce ~]# ls /media
[root@docker-ce ~]#
#在新建一个文件
[root@docker-ce ~]# touch /media/docker.txt
[root@docker-ce ~]# ls /media/
docker.txt
# 查看现在的挂载情况,可以看到sdb1挂载到了media目录上
[root@docker-ce ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 974M 0 974M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 11M 980M 2% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/mapper/centos-root 39G 4.8G 34G 13% /
/dev/sda1 1014M 172M 843M 17% /boot
/dev/mapper/centos-home 19G 33M 19G 1% /home
tmpfs 199M 36K 199M 1% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1 3.0G 33M 3.0G 2% /media
2.也可以自己手动创建一个挂载目录
#创建一个新的目录,在“/”下
[root@docker-ce ~]# mkdir /docker/
[root@docker-ce ~]# ll /
总用量 24
lrwxrwxrwx. 1 root root 7 3月 3 21:55 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 3月 3 22:03 boot
drwxr-xr-x. 19 root root 3320 3月 9 13:46 dev
drwxr-xr-x. 2 root root 6 3月 9 14:19 docker
drwxr-xr-x. 139 root root 8192 3月 9 12:39 etc
drwxr-xr-x. 3 root root 18 3月 3 22:02 home
lrwxrwxrwx. 1 root root 7 3月 3 21:55 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 3月 3 21:55 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 24 3月 9 14:10 media
drwxr-xr-x. 2 root root 6 4月 11 2018 mnt
drwxr-xr-x. 3 root root 19 3月 7 19:45 opt
dr-xr-xr-x. 244 root root 0 3月 9 12:39 proc
dr-xr-x---. 14 root root 4096 3月 9 12:42 root
drwxr-xr-x. 42 root root 1260 3月 9 12:41 run
lrwxrwxrwx. 1 root root 8 3月 3 21:55 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 4月 11 2018 srv
dr-xr-xr-x. 13 root root 0 3月 9 12:39 sys
drwxrwxrwt. 21 root root 4096 3月 9 13:33 tmp
drwxr-xr-x. 13 root root 155 3月 3 21:55 usr
drwxr-xr-x. 20 root root 282 3月 3 22:04 var
#将原来挂载的分区卸载掉,在新的目录下挂载
[root@docker-ce ~]# umount /media
[root@docker-ce ~]# ls /media
local #你会发现原来的文件并没有消失,只是被新挂载的分区覆盖掉了,将分区卸载掉后就能看到了
# 将分区挂载在新的目录上
[root@docker-ce ~]# mount /dev/sdb1 /docker
[root@docker-ce ~]# ls /docker #查看目录下内容
docker.txt
#查看当前挂载情况
[root@docker-ce ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 974M 0 974M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 11M 980M 2% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/mapper/centos-root 39G 4.8G 34G 13% /
/dev/sda1 1014M 172M 843M 17% /boot
/dev/mapper/centos-home 19G 33M 19G 1% /home
tmpfs 199M 36K 199M 1% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1 3.0G 33M 3.0G 2% /docker
开机自动挂载
要想系统开机自动挂载,需要修改配置文件/etc/fstab
#修改配置文件,在后面加上自己想要挂载的目录
# /etc/fstab
# Created by anaconda on Sun Mar 3 21:55:37 2024
#
# 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
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=93f87511-46b1-4b2a-a622-28c1195ec5de /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sdb1/ /docker xfs defaults 0 0
其中,添加的内容总共有六个字段,含义非别如下:
参数 | /dev/sdb1/ | /docker | xfs | defaults | 0 | 0 |
含义 | 想要挂载的分区设备 | 挂载点 | 文件系统类型 | 挂载选项 | 是否备份 | 是否检测 |
挂载的分区设备也可用UUID代替
说明:UUID号是唯一的,设备名是有可能会变化的。比如你现在使用设备名/dev/sdb1,但是如果/dev/sda盘损坏了,/dev/sdb是有可能变为/dev/sda的。UUID的查看方法见下下下表之后。
挂载选项的具体内容如下所示:
参数 | 说明 |
---|---|
Async/sync | 设置是否为同步方式运行,默认为async |
auto/noauto | 当下载mount -a 的命令时,此文件系统是否被主动挂载。默认为auto |
rw/ro | 是否以以只读或者读写模式挂载 |
exec/noexe | 限制此文件系统内是否能够进行"执行"的操作 |
user/nouser | 是否允许用户使用mount命令挂载 |
suid/nosuid | 是否允许SUID的存在 |
Usrquota | 启动文件系统支持磁盘配额模式 |
Grpquota | 启动文件系统对群组磁盘配额模式的支持 |
Defaults | 同时具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置 samba nfs |
是否进行备份字段,通常这个参数的值为0或者1,具体含义为:
参数 | 说明 |
---|---|
0 | 代表不要做备份 |
1 | 代表要每天进行操作 |
2 | 代表不定日期的进行操作 |
是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整
参数 | 说明 |
---|---|
0 | 不要检验 |
1 | 最早检验(一般根目录会选择) |
2 | 1级别检验完成之后进行检验 |
#UUID号的查看方式
[root@docker-ce ~]# blkid
/dev/sr0: UUID="2020-11-04-11-36-43-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sda1: UUID="93f87511-46b1-4b2a-a622-28c1195ec5de" TYPE="xfs"
/dev/sda2: UUID="7b5YW6-1ENK-z0V5-xADM-Rjcd-kpIL-hY4POD" TYPE="LVM2_member"
/dev/mapper/centos-root: UUID="09ae9901-1392-42d9-a4c3-c5ff74a39ae8" TYPE="xfs"
/dev/mapper/centos-swap: UUID="881207ec-8bcc-4c1a-8dd2-d125cf7002c9" TYPE="swap"
/dev/mapper/centos-home: UUID="47429df8-5401-4eea-b195-071cf5428f1e" TYPE="xfs"
/dev/sdb1: UUID="e3bcbf6a-6171-46b4-8d3b-d1e5f7b0756f" TYPE="xfs"
[root@docker-ce ~]# blkid /dev/sdb1
/dev/sdb1: UUID="e3bcbf6a-6171-46b4-8d3b-d1e5f7b0756f" TYPE="xfs"
#这里只显示格式化文件系统后的设备