辅助笔记-linux新增硬盘

linux新增硬盘

本文主要参考B站视频“P59_韩顺平Linux_增加磁盘应用实例”。
本文目的:在根目录/下创建新目录newdisk,并将一块新硬盘sdb的第一个分区sdb1挂载到/newdisk上。


步骤1:添加硬盘

本步骤主要是使Linux系统能识别到新增了一个物理硬盘。物理机实际新装一个磁盘即可,使用VMware虚拟机时则需要:菜单栏中的“虚拟机”–>设置,然后一路按照下面6张图片所示进行设置,中间只有选择磁盘大小的地方需要修改,至到完成:

图1 VMware添加物理硬盘的设置

进行到最后一个界面时,可以发现新增的硬盘已经出现在“虚拟机设置”的列表中了。然后重启系统! 如下指令:

reboot

重启后,重新登录root账户,可以发现Linux系统已经识别到新挂载的磁盘sdb

[root@CentOS76 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0    2G  0 part [SWAP]
└─sda3   8:3    0   17G  0 part /
sdb      8:16   0    1G  0 disk 
sr0     11:0    1  4.4G  0 rom  /run/media/root/CentOS 7 x86_64

步骤2:对硬盘进行分区

上个步骤中,Linux系统已经可以识别到硬盘sdb,但并没有进行分区,所以现在要对硬盘进行分区。进行硬盘分区的主要指令为fdisk

# 基本语法-fdisk
fdisk [选项] <磁盘>        # 更改分区表
fdisk [选项] -l <磁盘>     # 列出分区表
fdisk -s <分区>           # 给出分区大小(块数)
fdisk -h                 # 查看中文帮助文档

# 设置命令-注意这个不是fdisk的选项
m    显示命令列表
n    新增分区
p    显示磁盘分区,同fdisk -l
d    删除分区
w    写入并退出
q    不保存设置直接退出

由于/dev文件夹存储的都是设备文件,所以硬盘sdb的文件夹路径为/dev/sdb。于是对硬盘分区的设置就是依次输入下面的指令:

fdisk /dev/sdb   # 进入硬盘分区设置
n                # 新增分区
p                # 分区类型为主分区
回车键            # 分区号默认为1
回车键            # 起始扇区采用默认
回车键            # Last扇区采用默认
w                # 写入分区并退出

实际的终端操作界面为:

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

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

Device does not contain a recognized partition table
使用磁盘标识符 0x66b67813 创建新的 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-2097151,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{
    
    K,M,G} (2048-2097151,默认为 2097151):
将使用默认值 2097151
分区 1 已设置为 Linux 类型,大小设为 1023 MiB

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

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@CentOS76 ~]# 

此时再查看lsblk就可以硬盘sdb已经成功分区出sdb1

[root@CentOS76 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0    2G  0 part [SWAP]
└─sda3   8:3    0   17G  0 part /
sdb      8:16   0    1G  0 disk 
└─sdb1   8:17   0 1023M  0 part 
sr0     11:0    1  4.4G  0 rom 

步骤3:对硬盘分区进行格式化

虽然现在硬盘已经有了分区,但是如下面lsblk -f查看所示,该分区sdb1没有UUID,所以还要进行格式化才能使用。

[root@CentOS76 ~]# lsblk -f
NAME   FSTYPE  LABEL           UUID                                 MOUNTPOINT
sda                                                                 
├─sda1 ext4                    2e1b1edd-64e9-43f0-9362-138e2bd6adc5 /boot
├─sda2 swap                    7e2d03c3-f47a-4721-b29d-1a7b9170fe61 [SWAP]
└─sda3 ext4                    43bc1b00-e520-4cfb-8c4b-8f0afbde5dbe /
sdb                                                                 
└─sdb1                                                              
sr0    iso9660 CentOS 7 x86_64 2020-11-04-11-36-43-00       

格式化磁盘分区sdb1的指令是:

mkfs -t ext4 /dev/sdb1	# 其中ext4是分区类型

实际的终端显示窗口内容为:

[root@CentOS76 ~]# mkfs -t ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 261888 blocks
13094 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

[root@CentOS76 ~]# 

步骤4:将硬盘分区挂载到目录上

上述格式化分区sdb1完成后,再输入lsblk -f就可以发现sdb1已经有了自己的UUID,但是还没有挂载点(mount-point)。于是本步骤就是将sdb1硬盘分区 挂载 到Linux中的目录/newdisk下。

[root@CentOS76 ~]# lsblk -f
NAME   FSTYPE  LABEL           UUID                                 MOUNTPOINT
sda                                                                 
├─sda1 ext4                    2e1b1edd-64e9-43f0-9362-138e2bd6adc5 /boot
├─sda2 swap                    7e2d03c3-f47a-4721-b29d-1a7b9170fe61 [SWAP]
└─sda3 ext4                    43bc1b00-e520-4cfb-8c4b-8f0afbde5dbe /
sdb                                                                 
└─sdb1 ext4                    af8f970f-db7c-4582-9ca2-a33a9c20027a 
sr0    iso9660 CentOS 7 x86_64 2020-11-04-11-36-43-00   

上一段提到的 挂载 就是将一个分区与一个目录联系起来,那 卸载 自然就是去除这种联系。基本语法如下:

# 挂载-mount
mount 设备名称 挂载目录     # 如:mount /dev/sdb1 /newdisk
# 卸载-umount
umount 设备名称或者挂载目录  # 如:umount /dev/sdb1 或者 umount /newdisk 

于是本节中实际需要执行的指令为:

mkdir /newdisk           # 创建新目录/newdisk
mount /dev/sdb1 /newdisk # 将sdb1挂载到/newdisk上

实际的终端显示窗口内容为:

[root@CentOS76 ~]# mkdir /newdisk
[root@CentOS76 ~]# mount /dev/sdb1 /newdisk
[root@CentOS76 ~]# lsblk -f
NAME   FSTYPE  LABEL           UUID                                 MOUNTPOINT
sda                                                                 
├─sda1 ext4                    2e1b1edd-64e9-43f0-9362-138e2bd6adc5 /boot
├─sda2 swap                    7e2d03c3-f47a-4721-b29d-1a7b9170fe61 [SWAP]
└─sda3 ext4                    43bc1b00-e520-4cfb-8c4b-8f0afbde5dbe /
sdb                                                                 
└─sdb1 ext4                    af8f970f-db7c-4582-9ca2-a33a9c20027a /newdisk
sr0    iso9660 CentOS 7 x86_64 2020-11-04-11-36-43-00     

上述lsblk -f可以看到sdb1的挂载点已经设置为/newdisk。挂载完成后,以后在/newdisk下存储的文件,其存储的物理设备都在sdb上的分区sdb1上。若卸载磁盘,那么文件都会相应的留在磁盘中。


【题外话,可不执行】最后演示一下如何卸载磁盘:

# 演示磁盘“卸载”
[root@CentOS76 ~]# umount /dev/sdb1
[root@CentOS76 ~]# lsblk -f
NAME   FSTYPE  LABEL           UUID                                 MOUNTPOINT
sda                                                                 
├─sda1 ext4                    2e1b1edd-64e9-43f0-9362-138e2bd6adc5 /boot
├─sda2 swap                    7e2d03c3-f47a-4721-b29d-1a7b9170fe61 [SWAP]
└─sda3 ext4                    43bc1b00-e520-4cfb-8c4b-8f0afbde5dbe /
sdb                                                                 
└─sdb1 ext4                    af8f970f-db7c-4582-9ca2-a33a9c20027a 
sr0    iso9660 CentOS 7 x86_64 2020-11-04-11-36-43-00    
# 显然,上面sdb1分区的挂载点消失

# 下面重新“挂载”回来
[root@CentOS76 ~]# mount /dev/sdb1 /newdisk
[root@CentOS76 ~]# lsblk -f
NAME   FSTYPE  LABEL           UUID                                 MOUNTPOINT
sda                                                                 
├─sda1 ext4                    2e1b1edd-64e9-43f0-9362-138e2bd6adc5 /boot
├─sda2 swap                    7e2d03c3-f47a-4721-b29d-1a7b9170fe61 [SWAP]
└─sda3 ext4                    43bc1b00-e520-4cfb-8c4b-8f0afbde5dbe /
sdb                                                                 
└─sdb1 ext4                    af8f970f-db7c-4582-9ca2-a33a9c20027a /newdisk
sr0    iso9660 CentOS 7 x86_64 2020-11-04-11-36-43-00      

步骤5:设置“永久挂载”

上面4个步骤看起来已经很完全了,但仅仅使用命令行挂载,重启后会失效! 难道每次重新启动都需要重新挂载所有磁盘?这显然不现实,此时就需要“永久挂载”。通过修改/etc/fstab文件可以实现“永久挂载”。下面是打开/etc/fstab文件后的内容:

#
# /etc/fstab
# Created by anaconda on Thu Jul 13 17:06:52 2023
#
# 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
#
UUID=43bc1b00-e520-4cfb-8c4b-8f0afbde5dbe /                       ext4    defaults        1 1
UUID=2e1b1edd-64e9-43f0-9362-138e2bd6adc5 /boot                   ext4    defaults        1 2
UUID=7e2d03c3-f47a-4721-b29d-1a7b9170fe61 swap                    swap    defaults        0 0

显然该文件中的三行硬盘分区都属于之前已经挂载号的硬盘sda。共有6列,含义如下:

  1. 第一列(Device):磁盘设备文件或者该设备的Label或者UUID,三者均可。
  2. 第二项(Mount point):设备的挂载点,就是你要挂载到哪个目录下。
  3. 第三项(filesystem):磁盘文件系统的格式,普通分区默认使用文件系统格式为ext4
  4. 第四项(parameter):就是mount时,所要设定的状态,如ro(只读)或defaults(包括了其它参数如rwsuidexecautonouserasync),可以参见「mount nfs」。
  5. 第五项:能否被dump备份命令作用。通常设置为“0”表示不要做dump备份。
  6. 第六项:是否检验扇区。开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean)。一般设置为0不需要检验。

来源:自动挂载文件/etc/fstab功能详解

于是“永久挂载”的指令为:

vim /etc/fstab                             # 打开文件/etc/fstab
/dev/sdb1  /newdisk  ext4  defaults  0 0   # 在/etc/fstab文件中添加一行分区描述
mount -a	                               # 使上述修改即刻生效
reboot	                                   # 保险起见,可以重启一下

实际的终端显示窗口内容为:

[root@CentOS76 ~]# vim /etc/fstab 
#######################################
# vim中yy+p拷贝并复制最后一行,然后将最后一行改成:
# /dev/sdb1  /newdisk  ext4  defaults  0 0
# 然后保存并推出
#######################################
[root@CentOS76 ~]# mount -a
[root@CentOS76 ~]# reboot

# 下面是重启后
[root@CentOS76 ~]# lsblk -f
NAME   FSTYPE  LABEL           UUID                                 MOUNTPOINT
sda                                                                 
├─sda1 ext4                    2e1b1edd-64e9-43f0-9362-138e2bd6adc5 /boot
├─sda2 swap                    7e2d03c3-f47a-4721-b29d-1a7b9170fe61 [SWAP]
└─sda3 ext4                    43bc1b00-e520-4cfb-8c4b-8f0afbde5dbe /
sdb                                                                 
└─sdb1 ext4                    af8f970f-db7c-4582-9ca2-a33a9c20027a /newdisk
sr0    iso9660 CentOS 7 x86_64 2020-11-04-11-36-43-00   

此时就大功告成!完成了本文目的:在根目录/下创建新目录newdisk,并将一块新硬盘sdb的第一个分区sdb1挂载到/newdisk上。

猜你喜欢

转载自blog.csdn.net/weixin_46258766/article/details/131878173