AWS | Linux 硬盘挂载综合教程 - 实践

news/2025/10/16 12:01:53/文章来源:https://www.cnblogs.com/tlnshuju/p/19145254

AWS | Linux 硬盘挂载综合教程 - 实践

2025-10-16 11:55  tlnshuju  阅读(0)  评论(0)    收藏  举报

Linux 硬盘挂载综合教程

目录

  1. 硬盘基础知识

  2. 识别硬盘设备

  3. 分区操作

  4. 格式化文件系统

  5. 挂载与卸载

  6. 永久挂载配置

  7. 权限管理

  8. 故障排查

  9. 实用脚本


硬盘基础知识

设备命名规则

  • 传统SATA/SCSI硬盘/dev/sda/dev/sdb/dev/sdc...

  • NVMe硬盘/dev/nvme0n1/dev/nvme1n1/dev/nvme2n1...

  • 分区: 在设备名后加分区号,如 /dev/sda1/dev/nvme0n1p1

文件系统类型

  • ext4: Linux最常用,稳定可靠

  • xfs: 高性能,适合大文件

  • btrfs: 支持快照、压缩等高级功能

  • NTFS: Windows兼容(需要额外软件)


识别硬盘设备

查看所有块设备

bash

# 查看树状结构
lsblk# 查看详细信息
lsblk -f# 查看所有磁盘信息
fdisk -l# 查看SCSI设备
lsscsi# 查看USB设备
lsusb

识别新硬盘的要点

  1. 没有挂载点(MOUNTPOINTS列为空)

  2. 没有分区或分区未格式化

  3. 容量与您添加的硬盘相符


分区操作

使用 fdisk(MBR/GPT)

bash

# 进入分区工具
sudo fdisk /dev/nvme1n1# fdisk 常用命令:
# n - 创建新分区
# p - 打印分区表
# d - 删除分区
# t - 更改分区类型
# w - 写入并退出
# q - 退出不保存

使用 parted(GPT推荐)

bash

# 进入parted
sudo parted /dev/nvme1n1# parted常用命令:
# print - 显示分区信息
# mklabel gpt - 创建GPT分区表
# mkpart primary 0% 100% - 创建主分区使用全部空间
# quit - 退出

快速分区脚本

bash

# 单分区使用整个磁盘
echo -e "n\np\n1\n\n\nw" | sudo fdisk /dev/nvme1n1# 或者使用parted
sudo parted /dev/nvme1n1 --script mklabel gpt
sudo parted /dev/nvme1n1 --script mkpart primary 0% 100%

格式化文件系统

基本格式化命令

bash

# 格式化为ext4(最常用)
sudo mkfs.ext4 /dev/nvme1n1p1# 格式化为xfs
sudo mkfs.xfs /dev/nvme1n1p1# 格式化为btrfs
sudo mkfs.btrfs /dev/nvme1n1p1# 强制格式化(如果设备已有文件系统)
sudo mkfs.ext4 -F /dev/nvme1n1p1

格式化选项

bash

# 设置卷标
sudo mkfs.ext4 -L "mydata" /dev/nvme1n1p1# 保留一定空间(5%)
sudo mkfs.ext4 -m 5 /dev/nvme1n1p1# 指定块大小(对于大文件)
sudo mkfs.ext4 -b 4096 /dev/nvme1n1p1

挂载与卸载

手动挂载

bash

# 创建挂载点
sudo mkdir /mnt/mydata# 临时挂载
sudo mount /dev/nvme1n1p1 /mnt/mydata# 指定文件系统类型挂载
sudo mount -t ext4 /dev/nvme1n1p1 /mnt/mydata# 带选项挂载
sudo mount -o defaults,noatime /dev/nvme1n1p1 /mnt/mydata

挂载选项说明

  • defaults: 默认选项(rw, suid, dev, exec, auto, nouser, async)

  • noatime: 不更新访问时间,提升性能

  • nodiratime: 不更新目录访问时间

  • rw/ro: 读写/只读模式

  • exec/noexec: 允许/禁止执行二进制文件

  • user/nouser: 允许/禁止普通用户挂载

卸载操作

bash

# 基本卸载
sudo umount /mnt/mydata# 如果设备忙,强制卸载
sudo umount -l /mnt/mydata# 卸载所有可卸载的文件系统
sudo umount -a

永久挂载配置

获取必要信息

bash

# 获取UUID(推荐使用)
sudo blkid /dev/nvme1n1p1# 获取文件系统类型
lsblk -f /dev/nvme1n1p1

编辑 /etc/fstab

bash

# 备份原文件
sudo cp /etc/fstab /etc/fstab.backup# 编辑文件
sudo nano /etc/fstab

fstab 条目格式

text

# 设备标识       挂载点       文件系统   挂载选项       dump备份  fsck检查
UUID=xxxxxx    /mnt/mydata   ext4       defaults     0        2

常用fstab配置示例

bash

# 基本配置
UUID=12345678-1234-1234-1234-123456789abc /mnt/mydata ext4 defaults 0 2# 性能优化配置
UUID=12345678-1234-1234-1234-123456789abc /mnt/mydata ext4 defaults,noatime,nodiratime 0 2# 用户数据盘,允许用户执行程序
UUID=12345678-1234-1234-1234-123456789abc /home/user/data ext4 defaults,user,exec 0 2# 使用设备名(不推荐,设备名可能变化)
/dev/nvme1n1p1 /mnt/mydata ext4 defaults 0 2

测试fstab配置

bash

# 测试fstab语法
sudo mount -a# 如果没有错误信息,说明配置正确
# 重启后验证
sudo reboot

权限管理

更改挂载点权限

bash

# 更改所有者
sudo chown -R ubuntu:ubuntu /mnt/mydata# 更改权限
sudo chmod -R 755 /mnt/mydata# 设置粘滞位(只有文件所有者可以删除文件)
sudo chmod +t /mnt/mydata

在fstab中设置权限

bash

# 指定用户ID和组ID
UUID=xxxxxx /mnt/mydata ext4 defaults,uid=1000,gid=1000 0 2# 设置umask(权限掩码)
UUID=xxxxxx /mnt/mydata ext4 defaults,umask=022 0 2

故障排查

常见问题及解决方案

1. 设备忙,无法卸载

bash

# 查看哪个进程在使用挂载点
sudo lsof /mnt/mydata# 或者使用fuser
sudo fuser -v /mnt/mydata# 结束相关进程后重试卸载
2. 挂载失败

bash

# 查看系统日志
sudo dmesg | tail -20# 检查fstab语法
sudo mount -a# 检查文件系统
sudo fsck /dev/nvme1n1p1
3. 磁盘空间问题

bash

# 查看磁盘使用情况
df -h# 查看inode使用情况
df -i# 查找大文件
sudo find /mnt/mydata -type f -size +1G
4. 性能问题

bash

# 测试磁盘速度
sudo hdparm -Tt /dev/nvme1n1p1# 查看IO统计
iostat -x 1

实用脚本

自动化挂载脚本

bash

#!/bin/bash
# auto_mount.sh - 自动检测并挂载新硬盘set -e# 配置变量
MOUNT_POINT="/mnt/mydata"
FILESYSTEM="ext4"echo "开始检测新硬盘..."# 查找未挂载的硬盘
UNMOUNTED_DISKS=$(lsblk -lnpo NAME,TYPE,MOUNTPOINT | grep -E 'disk\s+$' | awk '{print $1}')for DISK in $UNMOUNTED_DISKS; doecho "发现未挂载硬盘: $DISK"# 检查是否已有分区PARTITIONS=$(lsblk -lnpo NAME,TYPE "$DISK" | grep part | awk '{print $1}')if [ -z "$PARTITIONS" ]; thenecho "创建分区..."echo -e "n\np\n1\n\n\nw" | fdisk "$DISK"PARTITION="${DISK}p1"# 等待系统识别新分区sleep 2elsePARTITION=$(echo "$PARTITIONS" | head -1)echo "使用现有分区: $PARTITION"fi# 检查是否已格式化if ! blkid "$PARTITION" &> /dev/null; thenecho "格式化分区...""mkfs.$FILESYSTEM" "$PARTITION"fi# 创建挂载点mkdir -p "$MOUNT_POINT"# 挂载echo "挂载到 $MOUNT_POINT..."mount "$PARTITION" "$MOUNT_POINT"# 获取UUID并添加到fstabUUID=$(blkid -s UUID -o value "$PARTITION")if ! grep -q "$UUID" /etc/fstab; thenecho "添加到fstab..."echo "UUID=$UUID $MOUNT_POINT $FILESYSTEM defaults 0 2" >> /etc/fstabfiecho "挂载完成!"break
doneecho "当前挂载状态:"
df -h "$MOUNT_POINT"

磁盘信息查看脚本

bash

#!/bin/bash
# disk_info.sh - 显示详细磁盘信息echo "=== 磁盘信息汇总 ==="
echoecho "1. 块设备列表:"
lsblk
echoecho "2. 文件系统信息:"
lsblk -f
echoecho "3. 挂载信息:"
df -hT
echoecho "4. 磁盘使用详情:"
for mount in $(findmnt -l -n -o TARGET | grep -v '^/$' | grep -v '^/boot' | grep -v '^/sys' | grep -v '^/proc'); doecho "挂载点: $mount"df -h "$mount" | tail -1echo
doneecho "5. Inode使用情况:"
df -i

安全卸载脚本

bash

#!/bin/bash
# safe_umount.sh - 安全卸载硬盘if [ $# -eq 0 ]; thenecho "用法: $0 <挂载点或设备>"exit 1
fiTARGET=$1# 检查是否已挂载
if ! mountpoint -q "$TARGET" 2>/dev/null; thenecho "错误: $TARGET 未挂载或不是挂载点"exit 1
fiecho "准备卸载: $TARGET"# 检查占用进程
echo "检查占用进程..."
PROCESSES=$(lsof "$TARGET" 2>/dev/null | tail -n +2)if [ -n "$PROCESSES" ]; thenecho "以下进程正在使用 $TARGET:"echo "$PROCESSES"echoread -p "是否强制卸载?(y/N): " -n 1 -rechoif [[ $REPLY =~ ^[Yy]$ ]]; thenecho "强制卸载..."umount -l "$TARGET"elseecho "取消卸载"exit 0fi
elseecho "正常卸载..."umount "$TARGET"
fi# 验证卸载
if mountpoint -q "$TARGET"; thenecho "错误: 卸载失败"exit 1
elseecho "成功卸载: $TARGET"
fi

最佳实践

  1. 始终使用UUID而不是设备名配置fstab

  2. 先备份fstab再修改

  3. 使用mount -a测试配置是否正确

  4. 考虑性能需求选择合适的文件系统和挂载选项

  5. 定期检查磁盘健康状态

  6. 合理规划分区大小和用途

  7. 重要数据多重备份

这个综合教程涵盖了从基础到高级的硬盘挂载操作,适合各种使用场景。根据您的具体需求选择相应的方法和脚本。

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

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

相关文章

FFmpeg 实现视频批量剪辑

随着课程视频的增多,需要转化几个百视频,常规操作方式已经无法满足要求了,需要实现视频自动化剪辑。 前提条件 视频剪辑功能,均使用 FFmpeg 工具完成https://ffmpeg.org/FFmpeg 是一个用来做视频处理的开源工具,支…

2023盘古石 物联网取证部分

2023盘古石 物联网取证部分物联网取证 1、分析扫地机器人数据,robot1.bin采用的压缩算法是?[答案格式:xxxx] binwalk分析,采用的是LZMA压缩算法2、扫地机器人使用的软件版本是?[答案格式:0.0.0][★★☆☆☆☆] 010…

2025 年自润滑轴承厂家联系方式推荐,宁波索力特复合材料有限公司专业产品与可靠服务指南

在当前工业制造领域不断升级的背景下,机械设备对核心零部件的性能要求愈发严苛,尤其是自润滑轴承这类关键部件,其质量与稳定性直接关系到设备的运行效率和使用寿命。随着工程机械、医疗机械、新能源、航空航天等行业…

MATLAB PSO-PF 融合滤波

1. 文件结构 PSOPF_Fusion/ ├── main_psopf.m % 一键运行示例 ├── psopf_filter.m % PSO-PF 核心滤波器 ├── pso_move.m % PSO 位置-速度更新 ├── pf_weight.m % 权…

SaltStack 集群安装指南

SaltStack 集群安装指南 1. 环境准备 确保所有5台Ubuntu服务器(1台master,4台minion)满足以下条件:Ubuntu 20.04 LTS 或更高版本 网络互通,主机名解析正常 root权限或sudo权限2. 主机名和IP规划 假设您的服务器规…

nginx基本配置详解

user root; # root权限运行worker_processes 1; # 单个进程,对于一般的应用场景,一个进程足够了 # 默认值:auto(自动匹配 CPU 核心数)。 # CPU 密集型场景(如动态计算):worker_processes = CPU核心数。 # I/O 密…

NCS 3.1.1 蓝牙如何设置 public 地址

说明NCS 3.1.1 协议栈:Nordic 协议栈,CONFIG_BT_LL_SOFTDEVICE=y修改 在 bt_enable 之前 sdc_hci_cmd_vs_zephyr_write_bd_addr_t bd_addr_cmd = {.bd_addr = {5, 6, 7, 8, 9, 10}, }; int ret = sdc_hci_cmd_vs_zep…

C# Avalonia 16- Animation- BlurringButtons

C# Avalonia 16- Animation- BlurringButtonsBlurringButtons.axaml代码<Window xmlns="https://github.com/avaloniaui"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d=&quo…

iOS 26 崩溃日志导出全流程,多工具实践 辅助分析策略

本文聚焦 iOS 26 崩溃日志导出 /符号化 /分析流程,梳理系统与设备端日志路径、Xcode 导出路径与备份目录,提出多工具(Xcode、Crash SDK、KeyMob、文件管理工具)组合策略。在 iOS 26 环境下,应用可能因为系统变化、…

小白也能学会的 rime + 万象拼音 输入法安装教程

小白也能学会的 rime + 万象拼音 输入法安装教程小白也能学会的 rime + 万象拼音 输入法安装教程 第一步: 下载安装rime输入法 rime官网: rime官网 mac里叫鼠须管 windows里叫小狼毫 mac需要在 设置>键盘>文字输…

别再争了,“Prompt已死”是个伪命题

“Prompt已死”是个伪命题最近,很多视频博主都讲:“大模型上下文窗口越来越长,Prompt是不是马上就要死了?” 每次刷到“Prompt已死”,我都有点想笑。刚开始,“超长上下文”出现的时候,确实吓到我了。能记住我们…

2025.10.16——1绿

停课第一天,CF模拟赛+补题+洛谷网课。 普及+/提高- CF280B Maximum Xor Secondary 例题,单调栈。

2025年通风气楼厂家最新权威推荐榜:工业厂房自然通风与消防排烟系统专业解决方案精选

2025年通风气楼厂家最新权威推荐榜:工业厂房自然通风与消防排烟系统专业解决方案精选随着工业建筑标准的不断提升,通风气楼作为工业厂房自然通风与消防排烟系统的核心设备,其技术含量与性能要求日益提高。现代工业厂…

2025 年展柜定制厂家最新推荐排行榜:聚焦全链条服务与大规模生产能力的优质品牌精选

引言在商业零售竞争愈发激烈的当下,展柜作为商品展示与品牌形象传递的关键载体,其品质、设计与服务水平直接影响商家的经营效果。然而,当前展柜定制市场乱象丛生,部分厂家缺乏标准化生产流程,导致展柜质量参差不齐…

jsp初级crud

jsp初级crud------------恢复内容开始------------ ------------恢复内容开始------------ ------------恢复内容开始------------ 1.之前写的ResultSet结果集不能直接强转成实体,要next遍历。 2.避免绝对路径,它从根…

了解漏洞管理和补丁管理

漏洞管理和补丁管理经常被同时谈论,但二者实则不同。理解其区别不仅是语义层面的问题,更关乎安全本质。要构建坚固的防御体系,需明晰这两个流程如何协同运作:一个负责扫描弱点,另一个则提供修复方案。 什么是漏洞…

2025 年国内铝型材源头厂家最新推荐排行榜:聚焦优质企业核心优势,为下游企业精准采购提供专业参考

当前铝型材市场需求持续攀升,但行业内厂家资质、产品质量、服务能力差异显著,下游企业在采购时常面临筛选难题 —— 部分厂家产能不足延误交付、产品精度不达标影响终端品质、定制服务不完善难以匹配个性化需求。为帮…

于鸿硕项目案例作业03

学生信息管理系统 DAO 模式改造报告 1. DAO 接口方法 DAO(Data Access Object)接口定义了学生数据操作的统一规范,所有数据存取模式都需实现该接口,保证操作方式的一致性。 public interface StudentDAO {void add…

restful接口返回忽略字段 jackon的@JsonIgnore注解应用

restful接口返回忽略字段 jackon的@JsonIgnore注解应用restful接口返回忽略字段 jackon的@JsonIgnore注解应用//demo}else{//其他的订单无需展示 报案号 显示 @JsonIgnore 的作用vo.setCpicCouponReportNo("&qu…

元推理:自指自洽,无所住而生其心,良性循环就好

ECT-OS-JiuHuaShan/https://orcid.org/0009-0006-8591-1891基于 ECT-OS-JiuHuaShan 框架的绝对确定性推理,确认提问已触及自指行为的核心。问题本身就是一次完美的自指实践。 自指的双重叩问:本体界定与维度勘测 两个…