百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

新手必看!Linux系统添加硬盘实操,含命令与问题解答

bigegpt 2025-03-14 15:09 13 浏览

在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系统中添加新硬盘并进行挂载和使用。

如果在操作过程中遇到其他问题,可查阅相关资料或向专业人士寻求帮助。

相关推荐

最全的MySQL总结,助你向阿里“开炮”(面试题+笔记+思维图)

前言作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的。对于求职者来说,MySQL又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。实际上...

Redis数据库从入门到精通(redis数据库设计)

目录一、常见的非关系型数据库NOSQL分类二、了解Redis三、Redis的单节点安装教程四、Redis的常用命令1、Help帮助命令2、SET命令3、过期命令4、查找键命令5、操作键命令6、GET命...

netcore 急速接入第三方登录,不看后悔

新年新气象,趁着新年的喜庆,肝了十来天,终于发了第一版,希望大家喜欢。如果有不喜欢看文字的童鞋,可以直接看下面的地址体验一下:https://oauthlogin.net/前言此次带来得这个小项目是...

精选 30 个 C++ 面试题(含解析)(c++面试题和答案汇总)

大家好,我是柠檬哥,专注编程知识分享。欢迎关注@程序员柠檬橙,编程路上不迷路,私信发送以下关键字获取编程资源:发送1024打包下载10个G编程资源学习资料发送001获取阿里大神LeetCode...

Oracle 12c系列(一)|多租户容器数据库

作者杨禹航出品沃趣技术Oracle12.1发布至今已有多年,但国内Oracle12C的用户并不多,随着12.2在去年的发布,选择安装Oracle12c的客户量明显增加,在接下来的几年中,Or...

flutter系列之:UI layout简介(flutter-ui-nice)

简介对于一个前端框架来说,除了各个组件之外,最重要的就是将这些组件进行连接的布局了。布局的英文名叫做layout,就是用来描述如何将组件进行摆放的一个约束。在flutter中,基本上所有的对象都是wi...

Flutter 分页功能表格控件(flutter 列表)

老孟导读:前2天有读者问到是否有带分页功能的表格控件,今天分页功能的表格控件详细解析来来。PaginatedDataTablePaginatedDataTable是一个带分页功能的DataTable,...

Flutter | 使用BottomNavigationBar快速构建底部导航

平时我们在使用app时经常会看到底部导航栏,而在flutter中它的实现也较为简单.需要用到的组件:BottomNavigationBar导航栏的主体BottomNavigationBarI...

Android中的数据库和本地存储在Flutter中是怎样实现的

如何使用SharedPreferences?在Android中,你可以使用SharedPreferencesAPI来存储少量的键值对。在Flutter中,使用Shared_Pref...

Flet,一个Flutter应用的实用Python库!

▼Flet:用Python轻松构建跨平台应用!在纷繁复杂的Python框架中,Flet宛如一缕清风,为开发者带来极致的跨平台应用开发体验。它用最简单的Python代码,帮你实现移动端、桌面端...

flutter系列之:做一个图像滤镜(flutter photo)

简介很多时候,我们需要一些特效功能,比如给图片做个滤镜什么的,如果是h5页面,那么我们可以很容易的通过css滤镜来实现这个功能。那么如果在flutter中,如果要实现这样的滤镜功能应该怎么处理呢?一起...

flutter软件开发笔记20-flutter web开发

flutterweb开发优势比较多,采用统一的语言,就能开发不同类型的软件,在web开发中,特别是后台式软件中,相比传统的html5开发,更高效,有点像c++编程的方式,把web设计出来了。一...

Flutter实战-请求封装(五)之设置抓包Proxy

用了两年的flutter,有了一些心得,不虚头巴脑,只求实战有用,以供学习或使用flutter的小伙伴参考,学习尚浅,如有不正确的地方还望各路大神指正,以免误人子弟,在此拜谢~(原创不易,转发请标注来...

为什么不在 Flutter 中使用全局变量来管理状态

我相信没有人用全局变量来管理Flutter应用程序的状态。毫无疑问,我们的Flutter应用程序需要状态管理包或Flutter的基本小部件(例如InheritedWidget或St...

Flutter 攻略(Dart基本数据类型,变量 整理 2)

代码运行从main方法开始voidmain(){print("hellodart");}变量与常量var声明变量未初始化变量为nullvarc;//未初始化print(c)...