辅助笔记-linux新增硬盘

news2025/1/10 21:07:35

linux新增硬盘

文章目录

  • linux新增硬盘
  • 步骤1:添加硬盘
  • 步骤2:对硬盘进行分区
  • 步骤3:对硬盘分区进行格式化
  • 步骤4:将硬盘分区挂载到目录上
  • 步骤5:设置“永久挂载”

本文主要参考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上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/778708.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IDEA: 将第三方依赖打入jar包

文章目录 一、添加自定义的jar包到lib目录下二、将自定义依赖包打入jar包方式1、使用springboot自带的插件 一、添加自定义的jar包到lib目录下 参考往期文章&#xff1a;IDEA中Java项目创建lib目录(添加依赖jar包代替maven依赖) 二、将自定义依赖包打入jar包 方式1、使用spr…

centos7下载mysql5.7,jdk1.8

前言&#xff1a;最近公司服务器从阿里云换到腾讯云了&#xff08;为了省钱啧啧&#xff09;&#xff0c;所以这个相关环境的配置工作&#xff0c;由我来负责了。 1.Mysql 1.下载 第一步&#xff1a; rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11…

【算法基础:数学知识】4.4 快速幂

文章目录 快速幂例题列表875. 快速幂⭐⭐⭐⭐⭐&#xff08;重要&#xff01;&#xff09;代码写法1——递归代码写法2——迭代递归写法 与 迭代写法的 对比 876. 快速幂求逆元&#x1f6b9;&#xff08;需要理解逆元的概念&#xff09;TODO乘法逆元介绍解法代码 快速幂 https…

python机器学习(三)特征预处理、鸢尾花案例--分类、线性回归、代价函数、梯度下降法、使用numpy、sklearn实现一元线性回归

K-近邻算法(K-Nearest Neighboor) 特征预处理 数据预处理的过程。数据存在不同的量纲、数据中存在离群值&#xff0c;需要稳定的转换数据&#xff0c;处理好的数据才能更好的去训练模型&#xff0c;减少误差的出现。 标准化 数据集的标准化对scikit-learn中实现的大多数机器…

WPF实战项目十(API篇):引入工作单元UnitOfWork

1、通过github地址&#xff1a;https://github.com/arch/UnitOfWork&#xff0c;下载UnitOfWork的代码&#xff0c;将工作单元部分的代码引用到自己的项目&#xff0c;新增UnitOfWork文件夹。 2、在UnitOfWork文件夹下引用UnitOfWork下的IPagedList.cs、PagedList.cs类&#xf…

探索物联网HMI的端口转发和NAT功能

前言 端口转发和NAT功能常用于内网穿透&#xff0c;实现内部网络和外部网络之间的数据传输&#xff0c;工作人员通过外部网络便可安全访问到内网设备&#xff0c;实现设备的状态监测。接下来小编将为大家介绍支持端口转发和NAT功能的虹科物联网HMI是如何帮助用户实现内网穿透。…

(css)自定义登录弹窗页面

(css)自定义登录弹窗页面 效果&#xff1a; 代码&#xff1a; <!-- 登录弹窗 --> <el-dialog:visible.sync"dialogVisible"title"用户登录"width"25%"centerclass"custom-dialog":show-close"false":close-on-cli…

uniapp 条件编译

// #ifdef %PLATFORM%仅在某平台存在&#xff1b;%PLATFORM%为平台名称// #ifndef %PLATFORM%除了某平台均存在&#xff1b;// #endifendif 一定要搭配使用%PLATFORM%&#xff1a; VUE3 HBuilderX 3.2.0 详情 APP-PLUS App APP-PLUS-NVUE或APP-NVUE App nvue 页面 APP-ANDRO…

Redis八股学习记录1Redis面试常问问题from小林coding

Redis八股学习记录1Redis简介与数据结构from小林coding Redis简介Redis数据结构String底层实现List底层实现Hash底层实现Set底层实现Zset Redis线程模型Redis持久化AOF日志的实现AOF日志重写机制 RDB快照实现混合持久化Redis集群主从复制哨兵模式切片集群模式Redis的集群脑裂问…

【C++初阶】仿函数和priority_queue的模拟实现(附源码)

一.仿函数 仿函数&#xff0c;顾名思义就是模仿函数&#xff0c;它其实是一个类&#xff0c;类里面重载了运算符&#xff08;&#xff09;&#xff0c;在调用这个重载的运算符时&#xff0c;让我们感觉是调用函数一样&#xff0c;可以说相当于C语言里的函数指针一样&#xff0c…

Jenkins环境配置篇-邮件发送

作为持续集成的利器Jenkins已经得到了广泛地应用&#xff0c;仅仅作为一个工具&#xff0c;Jenkins已然有了自己的生态圈&#xff0c;支持其的plugin更是超过1300。在实际中如何使用以及如何更好地使用jenkins&#xff0c;一直是大家在实践并讨论的。本系列文章将会从如何使用j…

视频拼接得AI三维生成方案-开端(一)

想使用二维得图像生成三维得空间图像&#xff0c;英伟达有完整得方案&#xff0c;开源&#xff0c;但是三维拼接不一样&#xff0c;只需要二维&#xff0c;并且要实时&#xff0c;如何生成是我每天都在思考得东西。 cnn 提取特征器和自编码 在训练细胞神经网络时&#xff0c;问…

【C++】多态案例— —计算器类

author&#xff1a;&Calton tag&#xff1a;C topic&#xff1a;【C】多态案例— —计算器类 website&#xff1a;黑马程序员C date&#xff1a;2023年7月23日 目录 多态概要 案例实现 原理剖析 多态概要 多态是C三大特性之一&#xff08;封装、继承、多态&#xff…

FreeRTOS源码分析-5 系统延时详解

目录 1 系统延时API详解 2 相对延时与绝对延时的区别 3 相对延时与绝对延时的应用 4 系统延时函数实现原理 4.1 vTaskDelay业务流程 4.2 vTaskDelayUntil业务流程 5 任务挂起/任务恢复详解 1 系统延时API详解 TickType_t 实际上是uint32_t类型 2 相对延时与绝对延时的区…

MATLAB | 绘制scatter散点图时如何自动标注超范围散点?

本文来讲一下如何自动标注超出坐标区域范围的点&#xff0c;例如这样&#xff1a; 如图右侧的红叉代表横坐标超过范围的点的纵坐标 &#xff0c;当然下方的红叉代表纵坐标超过范围点的横坐标。 本文使用的自己编写的工具函数scatterOOR将被放在文末&#xff0c;先讲讲咋用哈&a…

【算法基础:搜索与图论】3.3 拓扑排序

文章目录 拓扑排序介绍如何构造拓扑排序&#xff08;⭐重要&#xff01;&#xff09; 例题&#xff1a;848. 有向图的拓扑序列BFS 写法构造拓扑排序 相关题目练习207. 课程表&#xff08;判断是否存在拓扑序列&#xff09;bfs 写法dfs 写法 210. 课程表 II&#xff08;找到一个…

Packet Tracer – 实施静态 NAT 和动态 NAT

Packet Tracer – 实施静态 NAT 和动态 NAT 拓扑图 目标 第 1 部分&#xff1a;利用 PAT 配置动态 NAT 第 2 部分&#xff1a;配置静态 NAT 第 3 部分&#xff1a;验证 NAT 实施 第 1 部分&#xff1a; 利用 PAT 配置动态 NAT 步骤 1&#xff1a; 配置允许用于 NAT …

transformer 笔记

目录 目前在NLP领域当中&#xff0c;主要存在三种特征处理器——CNN、RNN 以及 Transformer&#xff0c;当前Transformer的流行程度已经大过CNN和RNN&#xff0c;它抛弃了传统CNN和RNN神经网络&#xff0c;整个网络结构完全由Attention机制以及前馈神经网络组成。 Transformer…

K8s Service网络详解(二)

Kube Proxy Kubernetes 在设计之初就充分考虑了针对容器的服务发现与负载均衡机制。 Service 资源&#xff0c;可以通过 kube-proxy 配合 cloud provider 来适应不同的应用场景。 Service相关的事情都由Node节点上的 kube-proxy处理。在Service创建时Kubernetes会分配IP给Ser…

Flask 定制日志并输出到文件

Flask 定制日志并输出到文件 定制日志器flask缺省日志器配置自定义日志器 定制日志器 flask缺省日志器配置 flask自带的日志系统&#xff0c;缺省配置dictConfig()&#xff0c;但必须在Flask()应用之前使用 # flask缺省配置 from logging.config import dictConfig dictConfig…