目录
⛳️推荐
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站
挂载硬件设备
mount命令用于挂载文件系统,格式为“mount文件系统 挂载目录”一般不需要使用-t参数来指定文件系统的类型,Linux系统会自动进行判断。而mount中的-a参数则厉害了,它会在执行后自动检查/etc/fstab文件中有无被疏漏挂载的设备文件,如果有,则进行自动挂载操作。
mount命令中参数及作用
参数 | 作用 |
-a | 挂载所有在/etc/fstab中定义的文件系统 |
-t | 指定文件系统的类型 |
设备/dev/nvme0n1p2挂载到/backup目录,只需要在mount命令中填写设备与挂载目录参数就行,系统会自动判断要挂载文件的类型,命令如下:
[root@localhost dev]# fdisk -l
查看一下自己的磁盘名称
Disk /dev/nvme0n1: 20 GiB, 21474836480 bytes, 41943040 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
Disklabel type: dos
Disk identifier: 0xaddfec92
Device Boot Start End Sectors Size Id Type
/dev/nvme0n1p1 * 2048 616447 614400 300M 83 Linux
/dev/nvme0n1p2 616448 4810751 4194304 2G 82 Linux swap / Solaris
/dev/nvme0n1p3 4810752 41943039 37132288 17.7G 83 Linux
挂载
[root@localhost dev]# mount /dev/nvme0n1p2 /backup
用UUID(Universally Unique Identifier,通用唯一识别码)进行挂载操作。UUID是一串用于标识每块独立硬盘的字符串,具有唯一性及稳定性,特别适合用来挂载网络设备
blkid命令用于显示设备的属性信息,语法格式为“blkid [设备名]”。使用blkid命令来查询设备UUID
[root@localhost dev]# blkid
/dev/nvme0n1: PTUUID="addfec92" PTTYPE="dos"
/dev/nvme0n1p1: UUID="b7107860-5e6f-4ff5-abb3-880ab7e6caca" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="addfec92-01"
/dev/nvme0n1p2: UUID="1396ecbf-4d87-4e65-898b-28048721d05e" TYPE="swap" PARTUUID="addfec92-02"
[root@localhost dev]# mount UUID=1396ecbf-4d87-4e65-898b-28048721d05e /backup
虽然按照上面的方法执行mount命令后就能立即使用文件系统了,但系统在重启后挂载就会失效,也就是说需要每次开机后都手动挂载一下,把挂载信息按照指定的填写格式“设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检”写入到/etc/fstab文件中。这个文件中包含着挂载所需的诸多信息项目
用于挂载信息的指定填写格式中,各字段所表示的意义
字段 | 意义 |
设备文件 | 一般为设备的路径+设备名称,也可以写唯一识别码(UUID,Universally Unique Identifier) |
挂载目录 | 指定要挂载到的目录,需在挂载前创建好 |
格式类型 | 指定文件系统的格式,比如Ext3、Ext4、XFS、SWAP、iso9660(此为光盘设备)等 |
权限选项 | 若设置为defaults,则默认权限为:rw, suid, dev, exec, auto, nouser, async |
是否备份 | 若为1则开机后使用dump进行磁盘备份,为0则不备份 |
是否自检 | 若为1则开机后自动进行磁盘自检,为0则不自检 |
将文件系统为Ext4的硬件设备/dev/nvme0n2在开机后自动挂载到/backup目录上,并保持默认权限且无须开机自检,就需要在/etc/fstab文件中写入下面的信息,这样在系统重启后也会成功挂载。由于后面需要使用系统镜像制作Yum/DNF软件仓库,我们提前把光盘设备挂载到/media/cdrom目录中。光盘设备的文件系统格式是iso9660:
[root@localhost dev]# vim /etc/fstab
UUID=147464a6-27ee-477f-8dfd-0c157a0aabc7 / xfs defaults 0 0
UUID=b7107860-5e6f-4ff5-abb3-880ab7e6caca /boot xfs defaults 0 0
UUID=1396ecbf-4d87-4e65-898b-28048721d05e none swap defaults 0 0
/dev/cdrom /media/cdrom iso9660 defaults 0 0
写入到/etc/fstab文件中的设备信息并不会立即生效,需要使用mount -a参数进行自动挂载:
[root@localhost dev]# mount -a
df命令用于查看已挂载的磁盘空间使用情况,语法格式为“df -h”用-h参数便捷地对存储容量进行“进位”操作
[root@localhost dev]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 878M 0 878M 0% /dev
tmpfs 896M 0 896M 0% /dev/shm
tmpfs 896M 9.3M 886M 2% /run
tmpfs 896M 0 896M 0% /sys/fs/cgroup
/dev/nvme0n1p3 18G 7.1G 11G 41% /
/dev/sr0 11G 11G 0 100% /media/cdrom
/dev/nvme0n1p1 295M 193M 102M 66% /boot
tmpfs 179M 12K 179M 1% /run/user/42
tmpfs 179M 0 179M 0% /run/user/0
在fstab文件挂载信息中加上_netdev参数。加上后系统会等联网成功后再尝试挂载这块网络存储设备,从而避免了开机时间过长或失败的情况
[root@localhost dev]# vim /etc/fstab
UUID=147464a6-27ee-477f-8dfd-0c157a0aabc7 / xfs defaults 0 0
UUID=b7107860-5e6f-4ff5-abb3-880ab7e6caca /boot xfs defaults 0 0
UUID=1396ecbf-4d87-4e65-898b-28048721d05e none swap defaults 0 0
/dev/cdrom /media/cdrom iso9660 defaults,_netdev 0 0
挂载文件系统的目的是为了使用硬件资源,而卸载文件系统则意味不再使用硬件的设备资源。
umount命令用于卸载设备或文件系统,语法格式为“umount [设备文件/挂载目录]”
[root@localhost dev]# umount /dev/nvme0n1p2
当前就处于设备所挂载的目录,系统会提示该设备繁忙,此时只需要退出到其他目录后再尝试一次
lsblk命令用于查看已挂载的磁盘的空间使用情况
[root@localhost dev]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 10.1G 0 rom /media/cdrom
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 300M 0 part /boot
├─nvme0n1p2 259:2 0 2G 0 part [SWAP]
└─nvme0n1p3 259:3 0 17.7G 0 part /
添加硬盘设备
首先把虚拟机系统关机,稍等几分钟会自动返回到虚拟机管理主界面,然后单击“编辑虚拟机设置”选项,在弹出的界面中单击“添加”按钮,新增一块硬件设备
选择虚拟硬盘的类型为SATA(用推荐的也可以,比SATA更好一些,踩坑了,必须和你原有的硬盘保持一致,我的事NVMe的,所以也要用这个),并单击“下一步”按钮
选中“创建新虚拟磁盘”单选按钮,再次单击“下一步”按钮
将“最大磁盘大小”设置为默认的20GB,单击“下一步”按钮
设置磁盘文件的文件名和保存位置(这里采用默认设置即可,无须修改),直接单击“完成”按钮
fdisk命令用于新建、修改及删除磁盘的分区表信息,语法格式为“fdisk磁盘名称”提供了集添加、删除、转换分区等功能于一身的“一站式分区服务”
fdisk命令中参数及作用
参数 | 作用 |
m | 查看全部可用的参数 |
n | 添加新的分区 |
d | 删除某个分区信息 |
l | 列出所有可用的分区类型 |
t | 改变某个分区的类型 |
p | 查看分区表信息 |
w | 保存并退出 |
q | 不保存直接退出 |
启动虚拟机,使用fdisk命令来尝试管理/dev/nvme0n2硬盘设备,在看到提示信息后输入参数p来查看硬盘设备内已有的分区信息,其中包括了硬盘的容量大小、扇区个数等信息:
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 10.1G 0 rom /media/cdrom
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 300M 0 part /boot
├─nvme0n1p2 259:2 0 2G 0 part [SWAP]
└─nvme0n1p3 259:3 0 17.7G 0 part /
nvme0n2 259:4 0 20G 0 disk
找到这个硬盘nvme0n2
[root@localhost ~]# fdisk /dev/nvme0n2
Welcome to fdisk (util-linux 2.32.1).
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.
Created a new DOS disklabel with disk identifier 0xac249528.
Command (m for help):
p
Disk /dev/nvme0n2: 20 GiB, 21474836480 bytes, 41943040 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
Disklabel type: dos
Disk identifier: 0xac249528
输入参数n尝试添加新的分区。系统会要求用户是选择继续输入参数p来创建主分区,还是输入参数e来创建扩展分区
Command (m for help):
n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
p
创建一个主分区后,系统要求用户先输入主分区的编号,主分区的编号范围是1~4,因此这里输入默认的1,输入+2G即可创建出一个容量为2GB的硬盘分区。
Partition number (1-4, default 1):
1
First sector (2048-41943039, default 2048):
回车
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039):
+2G
Created a new partition 1 of type 'Linux' and of size 2 GiB.
再次使用参数p来查看硬盘设备中的分区信息,参数w后按回车键,完成分区信息写入
Command (m for help):
p
Disk /dev/nvme0n2: 20 GiB, 21474836480 bytes, 41943040 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
Disklabel type: dos
Disk identifier: 0xac249528
Device Boot Start End Sectors Size Id Type
/dev/nvme0n2p1 2048 4196351 4194304 2G 83 Linux
Command (m for help):
w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
使用l参数查看一下磁盘编码都有哪些
[root@localhost ~]# fdisk /dev/nvme0n2
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): l
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
使用file命令查看该文件的属性
[root@localhost ~]# file /dev/nvme0n2
/dev/nvme0n2: block special (259/4)
输入partprobe命令手动将分区信息同步到内核,如果执行没结果的话
Linux系统中用于格式化操作的命令是mkfs,如果实现有问题有分区表了,可以加-f强制执行
[root@localhost ~]# mkfs.xfs /dev/nvme0n2p1
meta-data=/dev/nvme0n2p1 isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=524288, 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@localhost ~]# mkdir /newfile
[root@localhost ~]# mount /dev/nvme0n2p1 /newfile
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 878M 0 878M 0% /dev
tmpfs 896M 0 896M 0% /dev/shm
tmpfs 896M 9.3M 886M 2% /run
tmpfs 896M 0 896M 0% /sys/fs/cgroup
/dev/nvme0n1p3 18G 7.1G 11G 41% /
/dev/sr0 11G 11G 0 100% /media/cdrom
/dev/nvme0n1p1 295M 193M 102M 66% /boot
tmpfs 179M 12K 179M 1% /run/user/42
tmpfs 179M 0 179M 0% /run/user/0
/dev/nvme0n2p1 2.0G 78M 2.0G 4% /newfile
du命令用查看分区或目录所占用的磁盘容量大小,语法格式为“du -sh目录名称”
Linux系统中可以使用du -sh /*命令来查看在Linux系统根目录下所有一级目录分别占用的空间大小,在1s之内就能找到哪个目录占用的空间最多:
[root@localhost ~]# du -sh /*
0 /a
60K /backup.acl
0 /bin
176M /boot
从某些目录中复制过来一批文件,然后查看这些文件总共占用了多大的容量:
[root@localhost ~]# cp -rf /etc/* /newfile
[root@localhost ~]# du -sh /newfile
31M /newfile
挂载永久有效,则需要把挂载的信息写入配置文件中(红色部分):
[root@localhost ~]# vim /etc/fstab
UUID=147464a6-27ee-477f-8dfd-0c157a0aabc7 / xfs defaults 0 0
UUID=b7107860-5e6f-4ff5-abb3-880ab7e6caca /boot xfs defaults 0 0
UUID=1396ecbf-4d87-4e65-898b-28048721d05e none swap defaults 0 0
/dev/cdrom /media/cdrom iso9660 defaults 0 0
/dev/nvme0n2p1 /newfile xfs defaults 0 0