活动公告

系统通知
05-18 21:22
系统通知
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

Ubuntu系统磁盘管理完全指南 从入门到精通的硬盘分区格式化与维护教程

SunJu_FaceMall

3万

主题

2860

科技点

3万

积分

白金月票

碾压王

积分
32872

塔罗立华奏

<font color=白金月票" /> 发表于 2025-9-30 11:00:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
引言

Ubuntu作为最受欢迎的Linux发行版之一,其磁盘管理功能强大而灵活。无论是新安装系统、添加新硬盘,还是进行日常维护,掌握磁盘管理技能都是Ubuntu用户的必备能力。本文将全面介绍Ubuntu系统中的磁盘管理知识,从基础概念到高级技巧,帮助您从入门到精通,轻松管理Ubuntu系统中的硬盘分区、格式化和维护工作。

磁盘基础知识

在深入Ubuntu磁盘管理之前,我们需要了解一些基本概念:

硬盘与分区

硬盘是计算机的主要存储设备,Ubuntu系统中硬盘通常被表示为/dev/sdX的形式,其中X是字母,如/dev/sda、/dev/sdb等。如果是NVMe硬盘,则表示为/dev/nvmeXnY的形式。

分区是将硬盘划分为多个逻辑区域的过程,每个分区可以单独格式化并挂载到文件系统中。常见的分区类型有:

• 主分区:一块硬盘最多可以有4个主分区。
• 扩展分区:是一种特殊的主分区,可以包含多个逻辑分区。
• 逻辑分区:必须创建在扩展分区内,数量没有限制。

文件系统

文件系统是操作系统用于管理磁盘数据的方法。Ubuntu支持多种文件系统,常见的有:

• ext4:Ubuntu的默认文件系统,性能优秀,稳定性高。
• btrfs:先进的文件系统,支持快照、压缩等高级功能。
• xfs:高性能文件系统,特别适合大文件存储。
• ntfs:Windows系统使用的文件系统,Ubuntu可以读写。
• fat32/vfat:兼容性好的文件系统,适合USB闪存盘等移动设备。

挂载点

挂载点是文件系统中用于访问分区的目录。例如,根分区/是系统的主挂载点,/home是用户数据的挂载点。

Ubuntu磁盘管理工具介绍

Ubuntu提供了多种磁盘管理工具,包括命令行工具和图形界面工具。

命令行工具

1. fdisk:经典的磁盘分区工具,适合MBR分区表。
  1. sudo fdisk -l  # 列出所有磁盘和分区
  2.    sudo fdisk /dev/sda  # 对/dev/sda进行分区操作
复制代码

1. parted/GNU parted:功能更强大的分区工具,支持MBR和GPT分区表。
  1. sudo parted /dev/sda print  # 显示/dev/sda的分区表
  2.    sudo parted /dev/sda mklabel gpt  # 创建GPT分区表
复制代码

1. mkfs:用于创建文件系统的工具集。
  1. sudo mkfs.ext4 /dev/sda1  # 将/dev/sda1格式化为ext4文件系统
  2.    sudo mkfs.ntfs /dev/sda2  # 将/dev/sda2格式化为NTFS文件系统
复制代码

1. fsck:文件系统检查和修复工具。
  1. sudo fsck /dev/sda1  # 检查并修复/dev/sda1文件系统
复制代码

1. df:显示磁盘空间使用情况。
  1. df -h  # 以易读格式显示磁盘空间使用情况
复制代码

1. du:显示目录或文件的磁盘使用情况。
  1. du -sh /home/user  # 显示/home/user目录的总大小
复制代码

图形界面工具

1. GParted:功能强大的图形化分区编辑器。

安装方法:
  1. sudo apt update
  2.    sudo apt install gparted
复制代码

1. Disks (gnome-disks):Ubuntu默认的磁盘管理工具。

安装方法:
  1. sudo apt update
  2.    sudo apt install gnome-disks
复制代码

1. Baobab (Disk Usage Analyzer):磁盘使用分析工具。

安装方法:
  1. sudo apt update
  2.    sudo apt install baobab
复制代码

磁盘分区

在Ubuntu中进行磁盘分区是系统安装和管理的重要环节。以下是使用不同工具进行分区的详细步骤:

使用fdisk进行分区

fdisk是一个经典的命令行分区工具,适用于MBR分区表。

1. 查看系统中的磁盘:
  1. sudo fdisk -l
复制代码

输出示例:
  1. Disk /dev/sda: 500 GiB, 536870912000 bytes, 1048576000 sectors
  2.    Disk model: Samsung SSD 860
  3.    Units: sectors of 1 * 512 = 512 bytes
  4.    Sector size (logical/physical): 512 bytes / 512 bytes
  5.    I/O size (minimum/optimal): 512 bytes / 512 bytes
  6.    Disklabel type: gpt
  7.    Disk identifier: 12345678-1234-1234-1234-1234567890AB
  8.    Device         Start      End  Sectors Size Type
  9.    /dev/sda1      2048   1050623   1048576 512M EFI System
  10.    /dev/sda2   1050624 1048575966 1047525343 500G Linux filesystem
复制代码

1. 对目标磁盘进行分区操作:
  1. sudo fdisk /dev/sdb
复制代码

1. 在fdisk命令行界面中,可以使用以下命令:m:显示帮助信息p:显示当前分区表n:创建新分区d:删除分区t:更改分区类型w:保存更改并退出q:不保存更改并退出
2. m:显示帮助信息
3. p:显示当前分区表
4. n:创建新分区
5. d:删除分区
6. t:更改分区类型
7. w:保存更改并退出
8. q:不保存更改并退出
9. 创建新分区的示例:

在fdisk命令行界面中,可以使用以下命令:

• m:显示帮助信息
• p:显示当前分区表
• n:创建新分区
• d:删除分区
• t:更改分区类型
• w:保存更改并退出
• q:不保存更改并退出

创建新分区的示例:
  1. Command (m for help): n
  2.    Partition type
  3.       p   primary (0 primary, 0 extended, 4 free)
  4.       e   extended (container for logical partitions)
  5.    Select (default p): p
  6.    Partition number (1-4, default 1): 1
  7.    First sector (2048-209715199, default 2048):
  8.    Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-209715199, default 209715199): +10G
  9.    
  10.    Created a new partition 1 of type 'Linux' and of size 10 GiB.
复制代码

1. 保存更改:
  1. Command (m for help): w
  2.    The partition table has been altered.
  3.    Calling ioctl() to re-read partition table.
  4.    Syncing disks.
复制代码

使用parted进行分区

parted是更现代的分区工具,支持MBR和GPT分区表,特别适合大容量硬盘。

1. 查看系统中的磁盘:
  1. sudo parted -l
复制代码

1. 对目标磁盘进行分区操作:
  1. sudo parted /dev/sdb
复制代码

1. 在parted命令行界面中,可以使用以下命令:print:显示当前分区表mklabel:创建新的分区表(gpt或msdos)mkpart:创建新分区rm:删除分区resizepart:调整分区大小name:为GPT分区命名set:设置分区标志quit:退出parted
2. print:显示当前分区表
3. mklabel:创建新的分区表(gpt或msdos)
4. mkpart:创建新分区
5. rm:删除分区
6. resizepart:调整分区大小
7. name:为GPT分区命名
8. set:设置分区标志
9. quit:退出parted
10. 创建GPT分区表和新分区的示例:

在parted命令行界面中,可以使用以下命令:

• print:显示当前分区表
• mklabel:创建新的分区表(gpt或msdos)
• mkpart:创建新分区
• rm:删除分区
• resizepart:调整分区大小
• name:为GPT分区命名
• set:设置分区标志
• quit:退出parted

创建GPT分区表和新分区的示例:
  1. (parted) mklabel gpt
  2.    (parted) mkpart primary ext4 0% 10GB
  3.    (parted) name 1 "data"
  4.    (parted) set 1 lvm on
  5.    (parted) print
  6.    Model: ATA Samsung SSD 860 (scsi)
  7.    Disk /dev/sdb: 500GB
  8.    Sector size (logical/physical): 512B/512B
  9.    Partition Table: gpt
  10.    Disk Flags:
  11.    
  12.    Number  Start   End     Size    File system  Name  Flags
  13.     1      1049kB  10.0GB  9999MB               data  lvm
  14.    
  15.    (parted) quit
  16.    Information: You may need to update /etc/fstab.
复制代码

使用GParted进行分区

GParted是Ubuntu中最流行的图形化分区工具,操作直观简单。

1. 启动GParted:
  1. sudo gparted
复制代码

1. 在GParted窗口中,从右上角的下拉菜单中选择要操作的磁盘。
2. 查看当前分区表:GParted会显示当前磁盘的分区情况,包括每个分区的大小、文件系统、挂载点等信息。
3. 创建新分区:右键点击未分配空间,选择”New”。在弹出的对话框中,设置新分区的大小、文件系统类型、标签等。点击”Add”按钮。
4. 右键点击未分配空间,选择”New”。
5. 在弹出的对话框中,设置新分区的大小、文件系统类型、标签等。
6. 点击”Add”按钮。
7. 调整分区大小:右键点击要调整的分区,选择”Resize/Move”。在弹出的对话框中,拖动滑块或输入数值来调整分区大小。点击”Resize/Move”按钮。
8. 右键点击要调整的分区,选择”Resize/Move”。
9. 在弹出的对话框中,拖动滑块或输入数值来调整分区大小。
10. 点击”Resize/Move”按钮。
11. 删除分区:右键点击要删除的分区,选择”Delete”。
12. 右键点击要删除的分区,选择”Delete”。
13. 应用所有更改:点击工具栏上的绿色对勾图标(Apply All Operations)。确认要执行的操作,等待完成。
14. 点击工具栏上的绿色对勾图标(Apply All Operations)。
15. 确认要执行的操作,等待完成。

在GParted窗口中,从右上角的下拉菜单中选择要操作的磁盘。

查看当前分区表:GParted会显示当前磁盘的分区情况,包括每个分区的大小、文件系统、挂载点等信息。

创建新分区:

• 右键点击未分配空间,选择”New”。
• 在弹出的对话框中,设置新分区的大小、文件系统类型、标签等。
• 点击”Add”按钮。

调整分区大小:

• 右键点击要调整的分区,选择”Resize/Move”。
• 在弹出的对话框中,拖动滑块或输入数值来调整分区大小。
• 点击”Resize/Move”按钮。

删除分区:

• 右键点击要删除的分区,选择”Delete”。

应用所有更改:

• 点击工具栏上的绿色对勾图标(Apply All Operations)。
• 确认要执行的操作,等待完成。

格式化

创建分区后,需要将其格式化为适当的文件系统才能使用。以下是格式化分区的详细步骤:

使用mkfs格式化分区

mkfs是用于创建文件系统的命令行工具,支持多种文件系统类型。

1. 格式化为ext4文件系统:
  1. sudo mkfs.ext4 /dev/sdb1
复制代码

可以添加一些选项来优化文件系统:
  1. sudo mkfs.ext4 -m 1 -L "data" /dev/sdb1
复制代码

• -m 1:为root用户保留1%的空间(默认是5%)。
• -L "data":设置卷标为”data”。

1. 格式化为btrfs文件系统:
  1. sudo mkfs.btrfs -L "data" /dev/sdb1
复制代码

1. 格式化为xfs文件系统:
  1. sudo mkfs.xfs -L "data" /dev/sdb1
复制代码

1. 格式化为ntfs文件系统(需要安装ntfs-3g):
  1. sudo apt install ntfs-3g
  2.    sudo mkfs.ntfs -Q -L "data" /dev/sdb1
复制代码

• -Q:快速格式化。

1. 格式化为fat32文件系统:
  1. sudo mkfs.vfat -F 32 -n "DATA" /dev/sdb1
复制代码

• -F 32:创建FAT32文件系统。
• -n "DATA":设置卷标为”DATA”。

使用GParted格式化分区

使用GParted格式化分区更加直观:

1. 启动GParted:
  1. sudo gparted
复制代码

1. 选择要格式化的分区。
2. 右键点击分区,选择”Format to”,然后选择想要的文件系统类型。
3. 点击工具栏上的绿色对勾图标(Apply All Operations)来应用更改。

选择要格式化的分区。

右键点击分区,选择”Format to”,然后选择想要的文件系统类型。

点击工具栏上的绿色对勾图标(Apply All Operations)来应用更改。

文件系统选择指南

不同的文件系统有不同的特点和适用场景:

• ext4:Ubuntu的默认文件系统,稳定性好,性能均衡,适合大多数用途。
• btrfs:支持快照、压缩、自修复等高级功能,适合需要这些特性的高级用户和服务器环境。
• xfs:高性能,特别适合处理大文件和高并发访问,适合媒体服务器和高性能计算。
• ntfs:与Windows兼容,适合需要与Windows系统共享数据的双系统环境。
• fat32/vfat:兼容性最好,适合USB闪存盘等移动设备,但不支持大于4GB的文件。

挂载与自动挂载

格式化分区后,需要将其挂载到文件系统中才能使用。以下是挂载和自动挂载的详细步骤:

手动挂载分区

1. 创建挂载点目录:
  1. sudo mkdir /mnt/data
复制代码

1. 挂载分区:
  1. sudo mount /dev/sdb1 /mnt/data
复制代码

1. 验证挂载:
  1. df -h /mnt/data
复制代码


  1. mount | grep sdb1
复制代码

1. 卸载分区:
  1. sudo umount /mnt/data
复制代码

如果分区正在使用中,可以使用-l选项进行延迟卸载:
  1. sudo umount -l /mnt/data
复制代码

指定挂载选项

挂载时可以指定各种选项来控制文件系统的行为:

1. 挂载为只读:
  1. sudo mount -o ro /dev/sdb1 /mnt/data
复制代码

1. 挂载为读写(默认):
  1. sudo mount -o rw /dev/sdb1 /mnt/data
复制代码

1. 禁用atime更新(提高性能):
  1. sudo mount -o noatime /dev/sdb1 /mnt/data
复制代码

1. 指定文件系统类型:
  1. sudo mount -t ext4 /dev/sdb1 /mnt/data
复制代码

1. 挂载NTFS分区并支持中文文件名:
  1. sudo mount -t ntfs-3g -o iocharset=utf8 /dev/sdb1 /mnt/data
复制代码

自动挂载(编辑/etc/fstab)

要让系统启动时自动挂载分区,需要编辑/etc/fstab文件。

1. 备份原有的fstab文件:
  1. sudo cp /etc/fstab /etc/fstab.bak
复制代码

1. 编辑fstab文件:
  1. sudo nano /etc/fstab
复制代码

1. 在文件末尾添加新行,格式为:
  1. [设备] [挂载点] [文件系统类型] [选项] [dump] [pass]
复制代码

例如:
  1. /dev/sdb1   /mnt/data   ext4   defaults,noatime   0   2
复制代码

• 设备:可以是设备路径(如/dev/sdb1)、UUID(推荐)或标签。
• 挂载点:挂载点的目录路径。
• 文件系统类型:如ext4、ntfs、vfat等。
• 选项:多个选项用逗号分隔,如defaults,noatime。
• dump:备份工具dump的设置,0表示不备份。
• pass:fsck检查的顺序,0表示不检查,1表示根分区,2表示其他分区。

1. 使用UUID代替设备路径(推荐):

首先获取分区的UUID:
  1. sudo blkid /dev/sdb1
复制代码

输出示例:
  1. /dev/sdb1: UUID="12345678-1234-1234-1234-1234567890ab" TYPE="ext4" PARTUUID="12345678-1234-1234-1234-1234567890ab"
复制代码

然后在fstab中使用UUID:
  1. UUID=12345678-1234-1234-1234-1234567890ab   /mnt/data   ext4   defaults,noatime   0   2
复制代码

1. 使用标签代替设备路径:

首先为分区设置标签(如果还没有):
  1. sudo e2label /dev/sdb1 data
复制代码

然后在fstab中使用标签:
  1. LABEL=data   /mnt/data   ext4   defaults,noatime   0   2
复制代码

1. 保存并退出编辑器。
2. 测试fstab配置是否正确:

保存并退出编辑器。

测试fstab配置是否正确:
  1. sudo mount -a
复制代码

如果没有错误信息,说明配置正确。

1. 如果需要,可以重新挂载所有分区:
  1. sudo systemctl daemon-reload
  2.    sudo mount -o remount -a
复制代码

常用挂载选项

在/etc/fstab中,可以使用多种选项来控制文件系统的行为:

• defaults:使用默认选项(rw, suid, dev, exec, auto, nouser, async)。
• ro:只读挂载。
• rw:读写挂载。
• noatime:不更新访问时间,提高性能。
• nodiratime:不更新目录的访问时间。
• noexec:不允许执行文件。
• nosuid:不允许SUID和SGID位生效。
• nodev:不解释设备文件。
• noauto:不自动挂载。
• user:允许普通用户挂载。
• users:允许所有用户挂载和卸载。
• sync:同步I/O操作。
• async:异步I/O操作(默认)。
• acl:支持访问控制列表。

例如,为数据分区配置高性能和安全的选项:
  1. UUID=12345678-1234-1234-1234-1234567890ab   /mnt/data   ext4   defaults,noatime,nodiratime,data=writeback,barrier=0,nobh   0   2
复制代码

磁盘维护

定期维护磁盘可以保持系统性能并预防数据丢失。以下是磁盘维护的详细步骤:

检查磁盘空间使用情况

1. 使用df命令查看磁盘空间使用情况:
  1. df -h
复制代码

输出示例:
  1. Filesystem      Size  Used Avail Use% Mounted on
  2.    /dev/sda2       458G  128G  308G  30% /
  3.    /dev/sda1       511M  6.1M  505M   2% /boot/efi
  4.    /dev/sdb1       916G  172G  745G  19% /mnt/data
复制代码

1. 使用du命令查看目录大小:
  1. du -sh /home/*
复制代码

输出示例:
  1. 24G /home/user1
  2.    15G /home/user2
  3.    8.3G /home/user3
复制代码

1. 使用ncdu命令交互式查看磁盘使用情况(需要安装):
  1. sudo apt install ncdu
  2.    ncdu /home
复制代码

检查文件系统完整性

1. 使用fsck检查文件系统:
  1. sudo fsck /dev/sdb1
复制代码

如果只是检查而不修复,可以使用-n选项:
  1. sudo fsck -n /dev/sdb1
复制代码

1. 自动修复文件系统:
  1. sudo fsck -y /dev/sdb1
复制代码


  1. sudo fsck -a /dev/sdb1
复制代码

1. 强制检查文件系统(即使文件系统标记为干净):
  1. sudo fsck -f /dev/sdb1
复制代码

1. 检查特定类型的文件系统:ext4文件系统:sudo e2fsck -f /dev/sdb1btrfs文件系统:sudo btrfs check /dev/sdb1xfs文件系统:sudo xfs_repair -n /dev/sdb1  # 只检查不修复
sudo xfs_repair /dev/sdb1    # 检查并修复
2. ext4文件系统:
3. btrfs文件系统:
4. xfs文件系统:

检查特定类型的文件系统:

• ext4文件系统:
  1. sudo e2fsck -f /dev/sdb1
复制代码

• btrfs文件系统:
  1. sudo btrfs check /dev/sdb1
复制代码

• xfs文件系统:
  1. sudo xfs_repair -n /dev/sdb1  # 只检查不修复
  2. sudo xfs_repair /dev/sdb1    # 检查并修复
复制代码

优化文件系统

1. 调整ext4文件系统的保留空间:

默认情况下,ext4文件系统为root用户保留5%的空间。对于大容量硬盘,这可能会浪费很多空间。

查看当前保留空间:
  1. sudo tune2fs -l /dev/sdb1 | grep "Reserved block count"
复制代码

将保留空间调整为1%:
  1. sudo tune2fs -m 1 /dev/sdb1
复制代码

1. 启用ext4文件系统的在线碎片整理:
  1. sudo e4defrag /dev/sdb1
复制代码

或对特定目录进行碎片整理:
  1. sudo e4defrag /home/user
复制代码

1. 对于btrfs文件系统,可以进行平衡操作:
  1. sudo btrfs balance start /mnt/data
复制代码

1. 启用TRIM支持(SSD优化):

检查系统是否已启用TRIM:
  1. sudo systemctl status fstrim.timer
复制代码

如果未启用,可以手动启用:
  1. sudo systemctl enable fstrim.timer
  2.    sudo systemctl start fstrim.timer
复制代码

或手动运行TRIM:
  1. sudo fstrim -av
复制代码

监控磁盘健康状态

1. 使用smartctl监控硬盘健康状态(需要安装smartmontools):
  1. sudo apt install smartmontools
  2.    sudo smartctl -a /dev/sda
复制代码

运行简短的自检:
  1. sudo smartctl -t short /dev/sda
复制代码

查看自检结果:
  1. sudo smartctl -l selftest /dev/sda
复制代码

1. 使用badblocks检查坏道:
  1. sudo badblocks -sv /dev/sdb1
复制代码

以非破坏性只读方式检查:
  1. sudo badblocks -svn /dev/sdb1
复制代码

清理磁盘空间

1. 查找并删除大文件:
  1. find /home -type f -size +100M -exec ls -lh {} \;
复制代码

1. 清理旧的日志文件:
  1. sudo journalctl --vacuum-size=100M
复制代码

1. 清理APT缓存:
  1. sudo apt-get clean
复制代码

1. 删除不再需要的软件包:
  1. sudo apt autoremove
复制代码

1. 使用bleachbit清理系统(需要安装):
  1. sudo apt install bleachbit
  2.    sudo bleachbit
复制代码

常见问题与解决方案

在Ubuntu磁盘管理过程中,可能会遇到各种问题。以下是一些常见问题及其解决方案:

问题1:磁盘空间不足

症状:系统运行缓慢,无法安装新软件或创建新文件。

解决方案:

1. 检查磁盘空间使用情况:
  1. df -h
复制代码

1. 查找大文件和目录:
  1. sudo du -sh /* | sort -h
  2.    sudo du -sh /home/* | sort -h
复制代码

1. 使用ncdu交互式查找大文件:
  1. sudo apt install ncdu
  2.    sudo ncdu /
复制代码

1. 清理系统:
  1. sudo apt-get clean
  2.    sudo apt autoremove
  3.    sudo journalctl --vacuum-size=100M
复制代码

1. 删除不需要的文件:
  1. rm ~/.cache/thumbnails/*
  2.    rm -rf ~/.local/share/Trash/files/*
复制代码

1. 扩展分区大小(如果有未分配空间):

使用GParted调整分区大小。

问题2:分区表损坏

症状:系统无法识别硬盘或分区,无法启动。

解决方案:

1. 尝试修复MBR分区表:
  1. sudo fdisk /dev/sda
  2.    Command (m for help): p  # 查看分区表
  3.    Command (m for help): q  # 如果分区表看起来正常,退出
复制代码

如果分区表损坏,可以尝试重建:
  1. sudo fdisk /dev/sda
  2.    Command (m for help): o  # 创建新的DOS分区表
  3.    Command (m for help): w  # 保存并退出
复制代码

1. 尝试修复GPT分区表:
  1. sudo gdisk /dev/sda
  2.    Command (? for help): r  # 恢复和转换选项
  3.    Command (? for help): v  # 验证分区表
  4.    Command (? for help): w  # 保存并退出
复制代码

1. 使用testdisk恢复分区表(需要安装):
  1. sudo apt install testdisk
  2.    sudo testdisk
复制代码

按照提示操作,选择”Analyse” -> “Quick Search”来尝试恢复分区表。

问题3:文件系统损坏

症状:系统提示文件系统错误,无法挂载分区或读取文件。

解决方案:

1. 检查文件系统:
  1. sudo fsck -n /dev/sdb1  # 只检查不修复
复制代码

1. 修复文件系统:
  1. sudo fsck -y /dev/sdb1  # 自动修复所有问题
复制代码

1. 对于ext4文件系统,可以使用e2fsck:
  1. sudo e2fsck -f -y -v /dev/sdb1
复制代码

• -f:强制检查,即使文件系统标记为干净。
• -y:自动回答”yes”到所有问题。
• -v:详细模式。

1. 对于严重损坏的文件系统,可以尝试创建新的文件系统并恢复数据:
  1. sudo mkfs.ext4 /dev/sdb1
  2.    sudo fsck /dev/sdb1
复制代码

问题4:无法挂载NTFS分区

症状:尝试挂载NTFS分区时出现错误。

解决方案:

1. 确保安装了ntfs-3g:
  1. sudo apt install ntfs-3g
复制代码

1. 检查分区是否被Windows休眠:
  1. sudo ntfsfix /dev/sdb1
复制代码

1. 尝试以只读方式挂载:
  1. sudo mount -t ntfs-3g -o ro /dev/sdb1 /mnt/data
复制代码

1. 如果分区有错误,尝试修复:
  1. sudo ntfsfix -b -d /dev/sdb1
复制代码

问题5:UUID变更导致无法启动

症状:系统启动失败,提示找不到UUID。

解决方案:

1. 使用Live CD/USB启动系统。
2. 查找分区的UUID:

使用Live CD/USB启动系统。

查找分区的UUID:
  1. sudo blkid
复制代码

1. 挂载根分区:
  1. sudo mount /dev/sda2 /mnt
复制代码

1. 编辑fstab文件:
  1. sudo nano /mnt/etc/fstab
复制代码

更新UUID为正确的值。

1. 更新GRUB:
  1. sudo mount --bind /dev /mnt/dev
  2.    sudo mount --bind /proc /mnt/proc
  3.    sudo mount --bind /sys /mnt/sys
  4.    sudo chroot /mnt
  5.    update-grub
  6.    exit
复制代码

1. 重启系统:
  1. sudo reboot
复制代码

高级技巧

对于有经验的用户,Ubuntu提供了一些高级磁盘管理技巧,可以更灵活地管理存储资源。

逻辑卷管理(LVM)

LVM(Logical Volume Manager)是一种灵活的磁盘管理方案,允许动态调整分区大小、创建快照等。

1. 安装LVM工具:
  1. sudo apt install lvm2
复制代码

1. 创建物理卷(PV):
  1. sudo pvcreate /dev/sdb1
复制代码

1. 创建卷组(VG):
  1. sudo vgcreate data_vg /dev/sdb1
复制代码

1. 创建逻辑卷(LV):
  1. sudo lvcreate -L 10G -n data_lv data_vg
复制代码

1. 格式化逻辑卷:
  1. sudo mkfs.ext4 /dev/data_vg/data_lv
复制代码

1. 挂载逻辑卷:
  1. sudo mkdir /mnt/data
  2.    sudo mount /dev/data_vg/data_lv /mnt/data
复制代码

1. 扩展逻辑卷:
  1. sudo lvextend -L +5G /dev/data_vg/data_lv
  2.    sudo resize2fs /dev/data_vg/data_lv
复制代码

1. 创建LVM快照:
  1. sudo lvcreate -L 1G -s -n data_snapshot /dev/data_vg/data_lv
复制代码

软件RAID配置

Ubuntu支持多种RAID级别,可以提高数据冗余和性能。

1. 安装mdadm工具:
  1. sudo apt install mdadm
复制代码

1. 创建RAID 1(镜像):
  1. sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
复制代码

1. 创建RAID 0(条带):
  1. sudo mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1
复制代码

1. 创建RAID 5(带奇偶校验的条带):
  1. sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
复制代码

1. 格式化RAID设备:
  1. sudo mkfs.ext4 /dev/md0
复制代码

1. 挂载RAID设备:
  1. sudo mkdir /mnt/raid
  2.    sudo mount /dev/md0 /mnt/raid
复制代码

1. 查看RAID状态:
  1. sudo mdadm --detail /dev/md0
  2.    cat /proc/mdstat
复制代码

1. 保存RAID配置:
  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
  2.    sudo update-initramfs -u
复制代码

加密分区

使用LUKS(Linux Unified Key Setup)可以创建加密分区,保护敏感数据。

1. 安装cryptsetup工具:
  1. sudo apt install cryptsetup
复制代码

1. 创建加密分区:
  1. sudo cryptsetup luksFormat /dev/sdb1
复制代码

确认操作并输入密码。

1. 打开加密分区:
  1. sudo cryptsetup luksOpen /dev/sdb1 encrypted_data
复制代码

这将创建一个名为encrypted_data的映射设备,位于/dev/mapper/encrypted_data。

1. 格式化加密分区:
  1. sudo mkfs.ext4 /dev/mapper/encrypted_data
复制代码

1. 挂载加密分区:
  1. sudo mkdir /mnt/encrypted
  2.    sudo mount /dev/mapper/encrypted_data /mnt/encrypted
复制代码

1. 卸载并关闭加密分区:
  1. sudo umount /mnt/encrypted
  2.    sudo cryptsetup luksClose encrypted_data
复制代码

1. 自动挂载加密分区:

编辑/etc/crypttab文件:
  1. encrypted_data /dev/sdb1 none luks
复制代码

编辑/etc/fstab文件:
  1. /dev/mapper/encrypted_data /mnt/encrypted ext4 defaults 0 2
复制代码

网络文件系统(NFS)

NFS允许在网络上共享文件系统。

1. 安装NFS服务器:
  1. sudo apt install nfs-kernel-server
复制代码

1. 创建共享目录:
  1. sudo mkdir /srv/nfs/share
  2.    sudo chown nobody:nogroup /srv/nfs/share
  3.    sudo chmod 777 /srv/nfs/share
复制代码

1. 配置NFS导出:

编辑/etc/exports文件:
  1. /srv/nfs/share 192.168.1.0/24(rw,sync,no_subtree_check)
复制代码

• 192.168.1.0/24:允许访问的客户端网络。
• rw:读写权限。
• sync:同步写入。
• no_subtree_check:不检查子目录,提高性能。

1. 重启NFS服务:
  1. sudo systemctl restart nfs-kernel-server
复制代码

1. 在客户端安装NFS客户端:
  1. sudo apt install nfs-common
复制代码

1. 挂载NFS共享:
  1. sudo mkdir /mnt/nfs
  2.    sudo mount -t nfs 192.168.1.100:/srv/nfs/share /mnt/nfs
复制代码

1. 自动挂载NFS共享:

编辑/etc/fstab文件:
  1. 192.168.1.100:/srv/nfs/share /mnt/nfs nfs defaults 0 0
复制代码

总结与最佳实践

Ubuntu系统磁盘管理是一项重要而复杂的任务,掌握正确的技能和方法可以确保系统稳定运行并有效保护数据。以下是一些总结和最佳实践:

磁盘管理最佳实践

1. 定期备份重要数据:无论磁盘管理多么熟练,数据备份都是最重要的保护措施。使用rsync、déjàdup或其他备份工具定期备份重要数据。
2. 使用UUID而非设备路径:在/etc/fstab中使用UUID而不是设备路径(如/dev/sdb1),因为设备路径可能会在系统重启后发生变化。
3. 保持分区表备份:使用sfdisk -d /dev/sda > partition_table.bak备份分区表,以便在需要时恢复。
4. 定期检查文件系统:使用fsck定期检查文件系统完整性,特别是对于长期运行的系统。
5. 监控磁盘健康状态:使用smartctl定期检查硬盘健康状态,及早发现可能的硬件故障。
6. 合理规划分区:在安装系统时,合理规划分区大小和用途,考虑未来扩展的可能性。
7. 使用LVM提高灵活性:对于需要频繁调整分区大小的场景,考虑使用LVM管理磁盘。
8. 保持系统更新:定期更新系统和磁盘管理工具,以获得最新的功能和安全修复。

定期备份重要数据:无论磁盘管理多么熟练,数据备份都是最重要的保护措施。使用rsync、déjàdup或其他备份工具定期备份重要数据。

使用UUID而非设备路径:在/etc/fstab中使用UUID而不是设备路径(如/dev/sdb1),因为设备路径可能会在系统重启后发生变化。

保持分区表备份:使用sfdisk -d /dev/sda > partition_table.bak备份分区表,以便在需要时恢复。

定期检查文件系统:使用fsck定期检查文件系统完整性,特别是对于长期运行的系统。

监控磁盘健康状态:使用smartctl定期检查硬盘健康状态,及早发现可能的硬件故障。

合理规划分区:在安装系统时,合理规划分区大小和用途,考虑未来扩展的可能性。

使用LVM提高灵活性:对于需要频繁调整分区大小的场景,考虑使用LVM管理磁盘。

保持系统更新:定期更新系统和磁盘管理工具,以获得最新的功能和安全修复。

故障排除技巧

1. 使用Live CD/USB修复系统:当系统无法启动时,使用Live CD/USB启动系统,然后进行修复。
2. 检查日志文件:查看/var/log/syslog、/var/log/kern.log等日志文件,获取磁盘相关错误信息。
3. 使用救援模式:Ubuntu安装盘提供救援模式,可以帮助修复系统问题。
4. 保持冷静:遇到磁盘问题时,保持冷静,不要急于执行可能破坏数据的操作。

使用Live CD/USB修复系统:当系统无法启动时,使用Live CD/USB启动系统,然后进行修复。

检查日志文件:查看/var/log/syslog、/var/log/kern.log等日志文件,获取磁盘相关错误信息。

使用救援模式:Ubuntu安装盘提供救援模式,可以帮助修复系统问题。

保持冷静:遇到磁盘问题时,保持冷静,不要急于执行可能破坏数据的操作。

性能优化建议

1. 为SSD启用TRIM:定期运行TRIM命令或启用fstrim定时任务,保持SSD性能。
2. 调整文件系统参数:根据使用场景调整文件系统参数,如减少保留空间、禁用atime更新等。
3. 使用noatime挂载选项:对于不需要记录访问时间的分区,使用noatime选项挂载,提高性能。
4. 定期进行碎片整理:对于传统硬盘,定期进行碎片整理可以提高性能。

为SSD启用TRIM:定期运行TRIM命令或启用fstrim定时任务,保持SSD性能。

调整文件系统参数:根据使用场景调整文件系统参数,如减少保留空间、禁用atime更新等。

使用noatime挂载选项:对于不需要记录访问时间的分区,使用noatime选项挂载,提高性能。

定期进行碎片整理:对于传统硬盘,定期进行碎片整理可以提高性能。

通过遵循这些最佳实践和建议,您可以有效地管理Ubuntu系统中的磁盘,确保系统稳定运行并保护重要数据。无论是日常维护还是故障排除,掌握这些技能都将使您成为Ubuntu磁盘管理的专家。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

0

主题

1304

科技点

654

积分

候风辨气

积分
654
候风辨气 发表于 2025-9-30 11:57:24 | 显示全部楼层
感謝分享
温馨提示:看帖回帖是一种美德,您的每一次发帖、回帖都是对论坛最大的支持,谢谢! [这是默认签名,点我更换签名]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则