Linux加强篇-存储结构与管理硬盘(二)

「爱情、让人受尽委屈。」 2024-04-25 08:39 158阅读 0赞

目录

⛳️推荐

挂载硬件设备

添加硬盘设备


⛳️推荐

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

挂载硬件设备

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 /

添加硬盘设备

首先把虚拟机系统关机,稍等几分钟会自动返回到虚拟机管理主界面,然后单击“编辑虚拟机设置”选项,在弹出的界面中单击“添加”按钮,新增一块硬件设备

image.png

选择虚拟硬盘的类型为SATA(用推荐的也可以,比SATA更好一些,踩坑了,必须和你原有的硬盘保持一致,我的事NVMe的,所以也要用这个),并单击“下一步”按钮

image.png

选中“创建新虚拟磁盘”单选按钮,再次单击“下一步”按钮

image.png

将“最大磁盘大小”设置为默认的20GB,单击“下一步”按钮

image.png

设置磁盘文件的文件名和保存位置(这里采用默认设置即可,无须修改),直接单击“完成”按钮

image.png

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

发表评论

表情:
评论列表 (有 0 条评论,158人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Linux加强-用户身份

    一个用户只有一个基本用户组,但是可以有多个扩展用户组,从而满足日常的工作需要,你被任命了先各自为战,然后如果有人拉拢你,其他用户就是扩展用户组,但是基本用户组还是你,你中...

    相关 Linux加强-环境变量

    系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫作PATH,可以简单地把它理解成是“解释器的小助手”,作用是告诉Bash解释器待执行的命令可能存放的位置,然...

    相关 Linux加强-Vim编辑器

    在Vim中,无法直接从输入模式切换到末行模式。在Linux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数,Vim编辑器中设置了3种模式—命令模式、末行模式和...