新手必看!Linux系统添加硬盘实操,含命令与问题解答
bigegpt 2025-03-14 15:09 11 浏览
在Linux系统管理中,添加硬盘是一项常见且重要的任务。
无论是因为数据量增长,还是出于系统架构优化的考虑,掌握这一技能都至关重要。
本文将以清晰的步骤和丰富的示例,带你完成Linux系统添加硬盘的全过程。
一、前期准备:确保硬件就绪
在开始操作前,要确认硬件连接无误。如果是物理服务器,把新硬盘正确安装到硬盘插槽,接好数据线和电源线;
若是虚拟机,在虚拟机设置里添加新的虚拟硬盘,设置好硬盘大小等参数。硬件准备好后,就可以进入系统操作环节。
二、查看硬盘信息:识别新成员
以root用户登录Linux系统,打开终端,执行命令:
sudo fdisk -l
上述命令会列出系统中已有的硬盘及其分区信息,新添加的硬盘设备名称通常类似 /dev/sdb 、 /dev/sdc 等,借此可以确认新硬盘的标识。此外,还可以使用 lsblk 命令:
lsblk
它以更直观的树状结构展示系统中的块设备,不仅能看到硬盘和分区,还能显示挂载点信息,方便我们全面了解存储设备状态。
如果需要查看更详细的信息,比如设备的UUID、文件系统类型等,可以使用 lsblk -f 命令:
lsblk -f
三、分区操作:规划硬盘空间
1、启动分区工具
使用以下命令进入分区工具界面:
sudo fdisk /dev/sdx
这里的 x 需替换为新硬盘的实际字母标识,如 sdb 。
在进入 fdisk 工具后,还可以使用 m 命令查看所有可用的操作命令及简要说明:
Command (m for help): m
2、新建分区
进入 fdisk 工具后:
1). 输入 n ,选择新建分区。
2). 通常输入 p 创建主分区。若有特殊需求,也可选择创建扩展分区或逻辑分区。比如创建扩展分区,输入 e ;创建逻辑分区,需先创建扩展分区,然后在扩展分区内输入 l 。
3). 输入分区号,默认是1,直接回车即可。如果想自定义分区号,只要不与已有的分区号冲突即可。
4). 选择分区起始位置,直接回车采用默认值。也可以根据硬盘扇区数量等信息手动指定起始扇区。
5). 选择分区结束位置,若想使用整个硬盘空间,直接回车;若要自定义分区大小,可输入具体的扇区数或大小,比如 +10G 代表10GB大小。还可以使用 +100M 表示100MB, +1000k 表示1000KB 。
3、保存分区设置
完成分区设置后,输入 w 保存分区信息并退出分区工具。
为了让分区信息生效,还需执行:
sudo partprobe /dev/sdx
如果在 partprobe 执行过程中遇到问题,比如提示设备繁忙,可以尝试先卸载可能占用该设备的进程,或者重启系统后再执行。
四、格式化分区:赋予文件系统格式
1、选择文件系统格式
常见的Linux文件系统格式有ext4和xfs。
ext4稳定性和兼容性好,是常用格式;
xfs在大容量硬盘和高并发场景下表现优异,可根据实际需求选择。
此外,还有btrfs等文件系统,btrfs具有强大的管理功能和数据完整性保障,适用于对数据管理有高要求的场景。
2、执行格式化命令
若格式化为ext4文件系统,执行:
sudo mkfs.ext4 /dev/sdx1
若是格式化为xfs文件系统,则执行:
sudo mkfs.xfs /dev/sdx1
其中 x 代表新硬盘字母标识, 1 代表新创建的第一个分区,根据实际分区情况进行调整。
如果需要在格式化时指定一些特殊参数,比如为ext4文件系统指定inode数量,可以使用 -N 参数:
sudo mkfs.ext4 -N 100000 /dev/sdx1
这表示为该分区分配100000个inode。
五、挂载新硬盘:让硬盘可访问
1、创建挂载点
在文件系统中选一个目录作为新硬盘的挂载点,一般在 /mnt 目录下创建新文件夹,例如:
sudo mkdir /mnt/newdrive
也可以根据实际需求在其他位置创建挂载点,比如 /data/newdisk ,只要该目录存在且权限设置正确即可。
2、挂载硬盘
使用 mount 命令将新分区挂载到创建的挂载点上:
sudo mount /dev/sdx1 /mnt/newdrive
如果挂载时需要指定特殊的挂载选项,比如以只读方式挂载,可以使用 -o ro 参数:
sudo mount -o ro /dev/sdx1 /mnt/newdrive
挂载完成后,执行 df -h 命令查看硬盘的挂载情况及容量信息,执行 df -T 命令则可以查看挂载的文件系统类型:
df -h
df -T
df -T 命令输出结果中,会清晰展示每个挂载点对应的文件系统类型,方便确认格式化和挂载操作是否正确。
此时,就可以在挂载点目录下对新硬盘进行读写操作了。
六、设置开机自动挂载:持久化存储配置
为使新硬盘在系统每次启动时都能自动挂载,需编辑 /etc/fstab 文件。
1. 获取分区UUID
执行命令:
sudo blkid
该命令会列出所有块设备的UUID,找到新分区对应的UUID。
如果只想查看特定设备的UUID,可以使用 blkid /dev/sdx1 命令:
sudo blkid /dev/sdx1
2. 编辑 /etc/fstab 文件
执行:
sudo nano /etc/fstab
在文件末尾添加一行内容,格式为:
UUID=具体UUID /mnt/newdrive ext4 defaults 0 0
其中, 具体UUID 为新分区的UUID, /mnt/newdrive 为挂载点, ext4 为文件系统格式, defaults 为挂载选项, 0 0 表示不备份且不检查文件系统。如果需要添加特殊的挂载选项,比如设置用户权限,可在 defaults 处修改,如 rw,user,exec 表示可读写、允许普通用户挂载、允许执行文件 。
3. 保存并退出
添加完成后,按 Ctrl+X ,再按 Y ,最后按 Enter 保存并退出编辑器。使用命令:
sudo mount -a
检查 /etc/fstab 文件配置是否正确,若没有报错,则表示配置成功,下次系统启动时新硬盘将自动挂载。如果 mount -a 执行报错,可以根据错误提示检查 /etc/fstab 文件中的各项参数是否正确,比如UUID是否填写错误、挂载点是否存在等。
七、常见问题及解决方法
1. 输入 fdisk -l 命令后,看不到新硬盘的信息
先检查硬盘硬件连接是否正常,电源和数据线是否插好;
若硬件连接无误,可能是系统尚未识别新硬盘,尝试重新启动系统,或使用 lsblk 命令查看硬盘信息。
还可以检查内核日志,使用 dmesg | grep sd 命令查看系统识别硬盘时的相关日志信息。
2. 分区时输入 fdisk /dev/sdx 命令后,提示“找不到设备”
确认输入的设备名称是否正确,可再次使用 fdisk -l 命令查看硬盘的设备名称,确保 sdx 中的 x 与实际硬盘标识相符。
也有可能是设备驱动问题,可以检查系统是否安装了正确的硬盘驱动。
3. 格式化分区时,提示“无法格式化”
可能是分区未正确创建或已被其他程序占用。
检查分区是否创建成功,并且确保没有其他程序正在使用该分区;
若仍无法格式化,可尝试使用其他文件系统格式进行格式化。
可以使用 lsof | grep /dev/sdx1 命令查看是否有程序占用该分区。
4. 挂载新硬盘时,提示“权限不足”
使用 sudo 命令以管理员权限运行挂载命令;
若还是无法挂载,检查挂载点的权限是否允许当前用户进行挂载操作。
可以使用 chmod 755 /mnt/newdrive 命令修改挂载点权限。
5. 编辑 /etc/fstab 文件后,系统无法正常启动
这可能是 /etc/fstab 文件中的挂载信息填写错误导致的。可使用启动盘进入系统,检查 /etc/fstab 文件中的挂载信息是否正确,并进行修改。
在修改时,可以先将错误的行注释掉,使用 # 符号,然后逐步排查和修正。
通过以上步骤和注意事项,你应该能够顺利地在Linux系统中添加新硬盘并进行挂载和使用。
如果在操作过程中遇到其他问题,可查阅相关资料或向专业人士寻求帮助。
相关推荐
- 【机器学习】数据挖掘神器LightGBM详解(附代码)
-
来源:机器学习初学者本文约11000字,建议阅读20分钟本文为你介绍数据挖掘神器LightGBM。LightGBM是微软开发的boosting集成模型,和XGBoost一样是对GBDT...
- 3分钟,用DeepSeek全自动生成语音计算器,还带括号表达式!
-
最近,大家慢慢了解到了DeepSeek的强大功能,特别是它在编程领域也同样强大。编程零基础小白,一行代码不用写,也能全自动生成一个完整的、可运行的软件来!很多程序员一直不相信小白不写代码也能编软件!下...
- python学习笔记 3.表达式
-
在Python中,表达式是由值、变量和运算符组成的组合。以下是一些常见的Python表达式:算术表达式:由数值和算术运算符组成的表达式,如加减乘除等。例如:5+3、7*2、10/3等。字符...
- 5.7 VS 8.x,为什么用户不升级MySql
-
一般来说为了更好的功能和性能,都需要将软件升级到最新的版本,然而在开源软件中,由于一些开发商变化或其他的问题(开源授权变化),致使人们不愿使用最新的版本,一个最典型的问题就是CentOS操作系统。还有...
- 大厂高频:讲一下MySQL主从复制
-
大家经常听说主从复制,那么主从复制的意义?能解决的问题有哪些?主从复制能解决的问题就是在我们平时开发的程序中操作数据库的时候,大多数的情况查询的操作大大超过了写的操作,也就说对数据库读取数据的压力比较...
- MYSQL数据库的五大安全防护措施
-
以技术为基础的企业里最有价值的资产莫过于是客户或者其数据库中的产品信息了。因此,在这样的企业中,保证数据库免受外界攻击是数据库管理的重要环节。很多数据库管理员并没有实施什么数据库保护措施,只是因为觉得...
- docker安装mysql
-
准备工作已安装Docker环境(官方安装文档)终端/命令行工具(Linux/macOS/WSL)步骤1:拉取MySQL镜像打开终端执行以下命令,拉取官方MySQL镜像(默认最新版本):d...
- Zabbix监控系统系列之六:监控 mysql
-
zabbix监控mysql1、监控规划在创建监控项之前要尽量考虑清楚要监控什么,怎么监控,监控数据如何存储,监控数据如何展现,如何处理报警等。要进行监控的系统规划需要对Zabbix很了解,这里只是...
- 详解MySQL的配置文件及优化
-
#头条创作挑战赛#在Windows系统中,MySQL服务器启动时最先读取的是my.ini这个配置文件。在Linux系统中,配置文件为my.cnf,其路径一般为/etc/my.cnf或/etc/mysq...
- Mysql 几个批处理执行脚本
-
学习mysql过程中,需要创建测试数据,并让多人每人一个数据库连接并进行作业检查。整合部分批处理创建数据批量创建数据库DELIMITER$CREATEPROCEDURECreateDatab...
- MySQL学到什么程度?才有可以在简历上写精通
-
前言如今互联网行业用的最多就是MySQL,然而对于高级Web面试者,尤其对于寻找30k下工作的求职者,很多MySQL相关知识点基本都会涉及,如果面试中,你的相关知识答的模糊和不切要点,基...
- mysql 主、从服务器配置“Slave_IO_Running: Connecting” 问题分析
-
#在进行mysql主、从服务器配置时,”SHOWSLAVESTATUS;“查看从库状态Slave_IO_Runing,出现错误:“Slave_IO_Running:Connectin...
- MYSQL数据同步
-
java开发工程师在实际的开发经常会需要实现两台不同机器上的MySQL数据库的数据同步,要解决这个问题不难,无非就是mysql数据库的数据同步问题。但要看你是一次性的数据同步需求,还是定时数据同步,亦...
- 「MySQL 8」MySQL 5.7都即将停只维护了,是时候学习一波MySQL 8了
-
MySQL8新特性选择MySQL8的背景:MySQL5.6已经停止版本更新了,对于MySQL5.7版本,其将于2023年10月31日停止支持。后续官方将不再进行后续的代码维护。另外,...
- Prometheus监控mysql
-
通过Prometheus监控Mysql,我们需要在Mysql端安装一个mysql-exporter,然后Prometheus通过mysql-exporter暴露的端口抓取数据。1.安装一个MYSQL配...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- resize函数 (64)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- mybatis大于等于 (64)
- xcode-select (66)
- mysql授权 (74)
- httperror403.14-forbidden (63)
- logstashinput (65)
- hadoop端口 (65)
- dockernetworkconnect (63)
- esxi7 (63)
- vue阻止冒泡 (67)
- c#for循环 (63)
- oracle时间戳转换日期 (64)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)