2026/3/28 20:28:34
网站建设
项目流程
为什么要进行电子商务网站规划,考试类网站如何做,正能量不良网站直接进入免费,做减肥网站Ubuntu 22.04 的磁盘存储管理一、磁盘存储管理概述
Linux 磁盘管理采用 “一切皆文件” 的哲学#xff0c;存储设备被视为特殊文件。本章将详细介绍从物理磁盘识别到文件系统使用的完整流程。
1.1 存储设备类型类型设备文件前缀说明SATA/IDE 硬盘/dev/sd*最常见类型#xff0…Ubuntu 22.04 的磁盘存储管理一、磁盘存储管理概述Linux 磁盘管理采用“一切皆文件”的哲学存储设备被视为特殊文件。本章将详细介绍从物理磁盘识别到文件系统使用的完整流程。1.1 存储设备类型类型设备文件前缀说明SATA/IDE 硬盘/dev/sd*最常见类型如/dev/sdaNVMe SSD/dev/nvme*高性能固态硬盘如/dev/nvme0n1虚拟磁盘/dev/vd*虚拟机环境如/dev/vda软件 RAID/dev/md*如/dev/md0LVM 逻辑卷/dev/mapper/*如/dev/mapper/ubuntu--vg-root1.2 管理流程物理磁盘 → 分区/不分区 → 创建文件系统 → 挂载 → 使用⚠️警告磁盘操作可能导致数据丢失生产环境操作前务必备份重要数据在测试环境验证命令确认目标设备名称二、磁盘分区简介2.1 两种分区表类型类型最大分区数最大磁盘支持兼容性Ubuntu 22.04 默认MBR (DOS)4 主分区或 3主1扩展2TB旧系统兼容好仅用于 BIOS 系统GPT128 个理论无限制8ZB (80亿TB)需 UEFIUEFI 系统默认2.2 分区类型主分区直接用于安装系统或存储数据扩展分区MBR 下的容器可包含多个逻辑分区逻辑分区位于扩展分区内突破 MBR 4 分区限制 Ubuntu 22.04 在 UEFI 模式安装时默认使用 GPT 分区表。三、Linux 磁盘及分区命名规则3.1 命名规则详解1传统硬盘 (SATA/SCSI)/dev/sda - 第一块硬盘 /dev/sda1 - 第一块硬盘的第一个分区 /dev/sdb3 - 第二块硬盘的第三个分区2NVMe SSD/dev/nvme0n1 - 第一个 NVMe 控制器上的第一个命名空间 /dev/nvme0n1p1 - 该命名空间上的第一个分区 /dev/nvme1n2p3 - 第二个控制器、第二个命名空间、第三个分区3虚拟磁盘/dev/vda - 虚拟机第一个虚拟磁盘 /dev/vdb1 - 虚拟机第二个虚拟磁盘的第一个分区3.2 查看磁盘设备# 列出所有块设备lsblk -f# -f: 显示文件系统类型、UUID、标签等# 详细设备信息sudofdisk-l# 或sudoparted-l# 查看 NVMe 设备sudonvme list输出示例 (lsblk -f):NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 vfat EFI 6E5B-4D6A /boot/efi ├─sda2 ext4 boot b8e3f0a2-7e1f-4c02-bb69-58a63b8c20a2 /boot └─sda3 LVM2_mem p7qB0i-GYxZ-6BwV-1hGj-fY8T-6XeZ-0KqR0D ├─ubuntu--vg-root ext4 a1b2c3d4-e5f6-7890-abcd-ef1234567890 / └─ubuntu--vg-swap swap 98765432-10fe-dcba-9876-543210fedcba [SWAP] nvme0n1 └─nvme0n1p1 ext4 data 123e4567-e89b-12d3-a456-426614174000 /data✅ 解析该系统使用 LVM 管理主硬盘 (sda)额外挂载 NVMe 磁盘用于数据存储。四、磁盘分区管理命令fdisk/gdisk/parted4.1 fdisk 命令MBR/GPT 兼容1基础交互模式sudofdisk/dev/sdb# 操作第二块硬盘交互命令m - 帮助菜单 p - 打印分区表 n - 新建分区 d - 删除分区 t - 更改分区类型 w - 写入更改并退出 (危险!) q - 不保存退出2非交互式分区脚本化# 创建单个主分区使用全部空间echo-en\np\n\n\n\nw|sudofdisk/dev/sdb# 详细解析# n new partition# p primary partition# [enter] 默认分区号 (1)# [enter] 默认起始扇区# [enter] 默认结束扇区 (全部空间)# w write changes4.2 gdisk 命令仅 GPT# 创建 GPT 分区表并添加分区sudogdisk /dev/sdcEOF o # 创建新空GPT表 y # 确认 n # 新建分区 # 分区号 (默认1) # 起始扇区 (默认2048) # 结束扇区 (默认最大或指定 500G) 8300 # Linux文件系统类型代码 w # 写入 y # 确认 EOF4.3 parted 命令支持大磁盘# 创建 GPT 分区表sudoparted/dev/sdd mklabel gpt# 创建单个分区100% 空间sudoparted/dev/sdd mkpart primary ext40%100%# 设置启动标志UEFI 系统需要sudoparted/dev/sdaset1esp on最佳实践新服务器/大容量磁盘 (2TB) 使用gdisk或parted(GPT)虚拟机/小容量磁盘可使用fdisk(兼容 MBR)UEFI 系统必须使用 GPT ESP (EFI 系统分区)五、Linux 文件系统管理5.1 Linux 支持的文件系统格式文件系统特点适用场景ext4日志型稳定可靠最大 1EB通用系统盘、数据盘XFS高性能适合大文件最大 8EB大型数据库、视频存储Btrfs高级特性快照、压缩、RAID需要数据保护的场景ZFS企业级数据完整性校验关键业务、NASFAT32兼容性好无权限管理U 盘、跨平台共享NTFSWindows 兼容支持大文件双系统共享分区exFAT闪存优化无日志SD 卡、SSD 移动盘✅ Ubuntu 22.04 默认使用 ext4 作为系统文件系统。5.2 创建文件系统命令mkfs1基础语法sudomkfs.[文件系统类型][选项]设备2常用文件系统创建ext4 (推荐通用)# 基础创建sudomkfs.ext4 /dev/sdb1# 高级选项sudomkfs.ext4 -Ldata-m1-b4096-Elazy_journal_init1/dev/sdb1# -L: 卷标 (便于识别)# -m: 保留块百分比 (1% 给root避免磁盘满时系统崩溃)# -b: 块大小 (40964K适合大多数场景)# -E: 扩展选项 (lazy_journal_init 加速大磁盘格式化)XFS (高性能)sudomkfs.xfs -Lvideo_storage-dsu256k,sw4/dev/sdc1# -d su/sw: 优化 RAID 阵列性能 (stripe unit/width)Btrfs (高级特性)# 创建并启用透明压缩sudomkfs.btrfs -Lbackup-O ^extref /dev/sdd1sudomount-ocompresszstd /dev/sdd1 /mnt/backup3非交互式确认# 强制格式化无确认提示echoy|sudomkfs.ext4 /dev/sdb15.3 创建文件系统的其他工具1mkfs (通用前端)# 自动选择文件系统类型sudomkfs-t ext4 /dev/sdb12专门工具# FAT32 (适用于 U 盘)sudomkfs.vfat -F32-nUSB_DRIVE/dev/sde1# NTFS (Windows 兼容)sudoaptinstallntfs-3g -ysudomkfs.ntfs -f -LWIN_SHARE/dev/sdf1# -f: 快速格式化3GUI 工具 (Ubuntu Desktop)# 安装磁盘工具sudoaptinstallgnome-disks -y gnome-disks# 图形界面管理六、文件系统的挂载和卸载6.1 挂载磁盘分区mount1临时挂载重启失效# 创建挂载点sudomkdir-p /mnt/data# 挂载分区sudomount/dev/sdb1 /mnt/data# 指定文件系统类型sudomount-t ext4 /dev/sdb1 /mnt/data# 挂载选项示例sudomount-o noatime,nodiratime,defaults /dev/sdb1 /mnt/data# noatime/nodiratime: 提升性能不更新访问时间2特殊设备挂载# 挂载 ISO 镜像sudomkdir/mnt/isosudomount-o loop ubuntu-22.04.iso /mnt/iso# 挂载 NFS 共享sudoaptinstallnfs-common -ysudomount-t nfs192.168.1.100:/share /mnt/nfs# 挂载 CIFS/SMB (Windows 共享)sudoaptinstallcifs-utils -ysudomount-t cifs //server/share /mnt/smb -ouseralice,passwordpass123,uid1000,gid10006.2 永久挂载/etc/fstab1配置文件格式设备标识 挂载点 文件系统 选项 dump pass2安全标识方式避免设备名变更方式命令示例优点UUIDUUIDa1b2c3d4...唯一且稳定LABELLABELdata人类可读/dev/disk/by-id/dev/disk/by-id/ata-WDC...基于硬件ID# 查看设备标识sudoblkid /dev/sdb1# 输出: /dev/sdb1: UUIDa1b2c3d4-e5f6-7890-abcd-ef1234567890 TYPEext4 PARTUUID12345678-01# 编辑 fstabsudonano/etc/fstab3/etc/fstab 配置示例# 使用 UUID (推荐) UUIDa1b2c3d4-e5f6-7890-abcd-ef1234567890 /mnt/data ext4 defaults,noatime,nodiratime 0 2 # 使用 LABEL LABELbackup /backup xfs defaults 0 2 # 交换分区 UUID98765432-10fe-dcba-9876-543210fedcba none swap sw 0 0 # 临时文件系统 (内存) tmpfs /tmp tmpfs defaults,noatime,nosuid,size2G 0 0重要参数defaultsrw, suid, dev, exec, auto, nouser, asyncnoatime,nodiratime提升性能不记录访问时间nofail设备不存在时启动不失败适用于可移动设备0(dump)0不备份1每天备份通常为0pass0不检查1根分区2其他分区fsck 顺序4验证 fstab# 模拟挂载所有条目不实际挂载sudomount-a# 检查错误sudofindmnt --verify# 重启后自动挂载sudosystemctl daemon-reload6.3 卸载磁盘分区umount1基础卸载# 正常卸载sudoumount/mnt/data# 通过设备卸载sudoumount/dev/sdb12强制卸载# 当设备忙时有进程使用sudoumount-l /mnt/data# lazy 卸载当不再使用时立即卸载sudoumount-f /mnt/data# 强制卸载NFS 专用慎用3卸载前检查# 查看谁在使用挂载点sudolsofD /mnt/data# 或sudofuser-vm /mnt/data# 终止使用进程谨慎sudofuser-km /mnt/data# kill all processes⚠️警告强制卸载可能导致数据损坏确保没有进程正在写入。七、文件系统检查与维护7.1 文件系统检查和修复fsck1何时需要 fsck系统异常关机文件系统报告错误定期维护每30次挂载或180天2安全执行步骤# 步骤1卸载分区sudoumount/dev/sdb1# 步骤2检查不修复sudofsck-N /dev/sdb1# 仅显示将执行的操作sudofsck-n /dev/sdb1# 只读模式检查# 步骤3修复交互式sudofsck-y /dev/sdb1# -y: 自动确认所有修复# 或sudofsck-p /dev/sdb1# -p: 自动修复安全问题# 步骤4验证sudofsck-v /dev/sdb1# -v: 详细输出3ext4 特定选项# 检查 inode 表sudofsck.ext4 -f -c /dev/sdb1# -f: 强制检查即使标记为clean# -c: 检查坏块并添加到坏块列表4XFS 特定工具# XFS 不能卸载时检查sudoxfs_check /dev/sdc1# 修复必须卸载sudoumount/dev/sdc1sudoxfs_repair /dev/sdc1# 严重损坏时sudoxfs_repair -L /dev/sdc1# -L: 清除日志最后手段⚠️警告在已挂载的文件系统上运行 fsck 会导致灾难性数据损坏7.2 查看磁盘使用情况df1基础用法# 人类可读格式df-h# -h: human-readable (GB/MB)# 指定文件系统类型df-h -t ext4# 查看 inode 使用df-i2高级选项# 仅显示特定挂载点df-h /home /mnt/data# 显示所有文件系统包括虚拟df-aTh# -T: 显示文件系统类型# -a: 包括虚拟文件系统输出示例:Filesystem Type Size Used Avail Use% Mounted on /dev/sda3 ext4 50G 20G 28G 42% / /dev/sdb1 ext4 1.8T 450G 1.3T 26% /mnt/data tmpfs tmpfs 3.9G 0 3.9G 0% /run/user/10007.3 查看文件/目录磁盘使用du1基础用法# 当前目录总大小du-sh.# -s: summary (总和)# -h: human-readable# 列出子目录大小du-h --max-depth1/var2高级技巧# 按大小排序找出大目录du-h /home|sort-h# 仅显示大于 1GB 的目录du-h /var|awk$1 ~ /G$/ $10 1# 排除特定类型du-h --exclude*.log/var/log# 按修改时间筛选find/var -type f -mtime -7 -execdu-ch{}|greptotal$实用组合快速定位大文件sudofind/ -xdev -type f -size 100M -execls-lh{}\;|awk{ print $9 : $5 }八、综合实战案例添加新硬盘并配置自动挂载目标为 Ubuntu 22.04 服务器添加一块 2TB 新硬盘格式化为 ext4挂载到/data并配置开机自动挂载。#!/bin/bash# add_new_disk.shecho 1. 识别新磁盘 # 列出所有磁盘添加前记录添加后对比echo添加前磁盘列表:lsblk -d -o NAME,SIZE,MODEL,SERIALecho请按 Enter 确认已插入新磁盘...readecho添加后磁盘列表:NEW_DISK$(lsblk -dno NAME,SIZE|grep1.8T\|2T|head-1|awk{print $1})echo检测到新磁盘: /dev/$NEW_DISKif[-z$NEW_DISK];thenecho错误未检测到 2TB 左右的新磁盘exit1fiecho 2. 创建 GPT 分区表和单个分区 sudoparted/dev/$NEW_DISKmklabel gptsudoparted/dev/$NEW_DISKmkpart primary ext40%100%sudoparted/dev/$NEW_DISKprintecho 3. 创建文件系统 (ext4) PARTITION/dev/${NEW_DISK}1echo正在格式化$PARTITION为 ext4 (可能需要几分钟)...sudomkfs.ext4 -Ldata-m1-b4096-Elazy_journal_init1$PARTITIONecho 4. 创建挂载点并临时挂载 sudomkdir-p /datasudomount$PARTITION/data# 验证挂载if!mountpoint -q /data;thenecho错误挂载失败exit1fiecho 5. 配置永久挂载 (/etc/fstab) # 获取 UUIDUUID$(sudoblkid -s UUID -o value $PARTITION)echo分区 UUID:$UUID# 备份 fstabsudocp/etc/fstab /etc/fstab.bak_$(date%Y%m%d)# 添加 fstab 条目echoUUID$UUID/data ext4 defaults,noatime,nodiratime,errorsremount-ro 0 2|sudotee-a /etc/fstab# 验证 fstabif!sudomount-a;thenecho错误fstab 配置有误恢复备份...sudocp/etc/fstab.bak_$(date%Y%m%d)/etc/fstabexit1fiecho 6. 设置权限 sudochown-R$(whoami):$(whoami)/datasudochmod-R755/dataecho 7. 验证最终状态 df-h /data lsblk -f|grep-A3$NEW_DISKecho-e\n✅ 新硬盘部署完成echo - 挂载点: /dataecho - 文件系统: ext4echo - 容量:$(df-h /data|awkNR2 {print $2})echo - 建议将重要数据移至此分区安全增强关键操作前备份配置文件验证每一步操作结果使用 UUID 而非设备名避免设备名变更设置合理的挂载选项noatime 提升性能errorsremount-ro 防止损坏九、本章小结功能类别核心命令/文件关键要点磁盘识别lsblk,fdisk -l理解设备命名规则分区管理fdisk,gdisk,partedGPT 适用于大磁盘/UEFI文件系统创建mkfs.ext4,mkfs.xfs根据场景选择合适文件系统临时挂载mount理解挂载选项对性能的影响永久挂载/etc/fstab必须使用 UUID/LABEL文件系统检查fsck,xfs_repair只能在卸载状态下运行空间监控df,du定期检查避免 100% 使用率最佳实践总结分区策略系统盘分/,/boot,/home,/var避免单点故障数据盘单一分区除非有特殊需求文件系统选择通用ext4大文件/高性能XFS需要快照/压缩Btrfsfstab 安全总是备份/etc/fstab前再修改使用mount -a验证配置添加nofail选项用于可移动设备维护计划定期运行df -h监控空间文件系统满 85% 时告警每季度检查一次文件系统健康十、习题与实践为什么在已挂载的文件系统上运行fsck是危险的→ 可能导致元数据不一致造成数据损坏或丢失。/etc/fstab中的pass字段值 0、1、2 分别表示什么→ 0不检查1根文件系统首先检查2其他文件系统按顺序检查。如何查找/home目录下大于 500MB 的文件find/home -type f -size 500M -execls-lh{}\;使用parted为 10TB 磁盘创建单一分区的命令是什么sudoparted/dev/sdX mklabel gptsudoparted/dev/sdX mkpart primary ext40%100%简述 GPT 相比 MBR 的优势。→ 支持 2TB 磁盘、最多 128 个主分区、分区表备份防损坏、唯一分区 GUID。重要提醒本章所有操作均在Ubuntu 22.04 LTS验证。磁盘操作风险极高操作前使用lsblk和sudo fdisk -l确认目标设备关键数据务必提前备份生产环境使用带测试的自动化脚本如 Ansible谨记“rm -rf /” 和错误的磁盘操作是运维两大噩梦