【ShuQiHere】Linux 硬盘与存储设备操作命令大全:从入门到精通的全面指南

【ShuQiHere】🚀

在 Linux 系统中,硬盘和存储设备的管理是系统管理员和高级用户必须掌握的核心技能之一。无论是查看硬盘信息、分区、格式化,还是复制整个磁盘,熟练使用相关命令都能大大提升你的工作效率和系统维护能力。本文将以通俗易懂的方式,结合丰富的背景知识、详细的解释和生动的实例,带你深入了解这些强大的命令。让我们开始这场精彩的旅程吧!🌟


目录

  1. 引言:探索硬盘世界的奥秘
  2. 硬盘与存储设备的基础知识
  3. 查看硬盘信息的利器:lsblk 📊
  4. 分区管理:fdiskparted 🛠️
  5. 文件系统的创建与检查:mkfsfsck 🗄️
  6. 挂载与卸载:mountumount 🔗
  7. 磁盘空间的查看:dfdu 💽
  8. 磁盘的复制与备份:dd 命令 📀
  9. 交换分区与文件:swaponswapoffmkswap 🔄
  10. 硬盘性能测试:hdparmdd 🏎️
  11. 总结:成为硬盘管理高手的下一步 📚

引言:探索硬盘世界的奥秘

小明是一名 Linux 新手,他对系统的硬盘和存储设备充满了好奇。他发现,了解并掌握硬盘管理命令,不仅可以更好地维护系统,还能在数据恢复、性能优化等方面大显身手。于是,他决定深入学习这些命令,开启一段奇妙的探索之旅。让我们跟随小明的脚步,一起揭开硬盘世界的奥秘吧!👣


硬盘与存储设备的基础知识

什么是块设备?

在 Linux 中,硬盘、SSD、U 盘等存储设备被称为块设备(Block Device)。它们以块(通常为 512 字节或 4 KB)的形式进行数据读写操作。

硬盘的命名规则

  • 传统 HDD/SSD:通常命名为 /dev/sd[a-z],例如 /dev/sda/dev/sdb
  • NVMe SSD:命名为 /dev/nvme[0-9]n[1-9],例如 /dev/nvme0n1
  • USB 存储设备:也可能被识别为 /dev/sdX

每个设备可以有多个分区,分区号紧跟在设备名后,例如 /dev/sda1/dev/sda2


查看硬盘信息的利器:lsblk 📊

基本用法与示例

lsblk(List Block Devices)用于列出系统中的块设备及其关系。

lsblk

示例

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 465.8G  0 disk
├─sda1        8:1    0   200M  0 part /boot
├─sda2        8:2    0   100G  0 part /
└─sda3        8:3    0 365.6G  0 part /home

解释

  • NAME:设备名称。
  • SIZE:设备或分区大小。
  • TYPE:类型,disk 为物理磁盘,part 为分区。
  • MOUNTPOINT:挂载点。

深入选项:-f-a-o

  • -f:显示文件系统类型。

    lsblk -f
    

    示例

    NAME   FSTYPE LABEL UUID                                 MOUNTPOINT
    sda
    ├─sda1 vfat         1234-ABCD                            /boot
    ├─sda2 ext4         5678-DCBA                            /
    └─sda3 ext4         90AB-CDEF                            /home
    
  • -a:显示所有设备,包括空设备。

  • -o:自定义输出列。

    lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT
    

实战演练

场景:小明插入了一个新的 U 盘,想查看其设备名称和挂载点。

lsblk -f

他发现多了一个设备 /dev/sdb,挂载在 /media/usb


分区管理:fdiskparted 🛠️

fdisk 的基本用法

fdisk 是用于管理磁盘分区的交互式工具,适用于 MBR 分区表。

查看磁盘分区

sudo fdisk -l /dev/sda

进入交互模式

sudo fdisk /dev/sda

常用命令

  • p:显示分区表。
  • n:创建新分区。
  • d:删除分区。
  • w:保存更改并退出。
  • q:不保存更改并退出。

警告:操作分区可能导致数据丢失,请务必备份重要数据并谨慎操作。

parted 的基本用法

parted 支持 GPT 分区表,适用于大容量硬盘。

启动 parted

sudo parted /dev/sda

常用命令

  • print:显示分区信息。
  • mklabel:创建分区表(msdosgpt)。
  • mkpart:创建新分区。
  • rm:删除分区。

注意事项与风险提示

  • 备份数据:在修改分区前,备份重要数据。
  • 确保设备正确:操作前确认设备名称,避免误操作。
  • 实时生效:部分操作立即生效,无法撤销。

文件系统的创建与检查:mkfsfsck 🗄️

使用 mkfs 创建文件系统

mkfs(Make File System)用于在分区上创建文件系统。

常用文件系统类型

  • ext4:常用的 Linux 文件系统。
  • vfat:适用于 U 盘,与 Windows 兼容。
  • ntfs:Windows 文件系统,需要安装 ntfs-3g

创建 ext4 文件系统

sudo mkfs.ext4 /dev/sda1

创建 vfat 文件系统

sudo mkfs.vfat /dev/sdb1

风险提示mkfs 会格式化分区,删除所有数据。请确认操作分区并备份数据。

使用 fsck 检查和修复文件系统

fsck(File System Consistency Check)用于检查并修复文件系统错误。

检查文件系统

sudo fsck /dev/sda1

注意事项

  • 卸载分区:在检查前,最好先卸载分区。

    sudo umount /dev/sda1
    
  • 自动修复:使用 -y 选项自动修复发现的问题。

    sudo fsck -y /dev/sda1
    

挂载与卸载:mountumount 🔗

基本概念与用法

  • 挂载(Mount):将设备的文件系统连接到系统的目录树中。
  • 卸载(Umount):将设备的文件系统从目录树中移除。

挂载文件系统

sudo mount /dev/sda1 /mnt

指定文件系统类型

sudo mount -t ext4 /dev/sda1 /mnt

卸载文件系统

sudo umount /dev/sda1

注意事项

  • 占用情况:如果设备正被使用,可能无法卸载。可以使用 lsoffuser 查看占用进程。

    sudo lsof /dev/sda1
    

自动挂载与 /etc/fstab 配置

编辑 /etc/fstab

sudo nano /etc/fstab

添加条目

UUID=1234-ABCD  /mnt/data  ext4  defaults  0  2

解释

  • UUID:设备的唯一标识符,可用 blkid 命令获取。
  • 挂载点:如 /mnt/data,需提前创建目录。
  • 文件系统类型:如 ext4vfat
  • 挂载选项defaults 表示默认选项。

注意事项

  • 配置错误风险/etc/fstab 配置错误可能导致系统无法启动。修改前备份文件,并确保配置正确。

磁盘空间的查看:dfdu 💽

查看文件系统的磁盘使用情况

df 命令
df -h
  • -h:以人类可读格式显示(如 GB、MB)。

示例

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       100G   20G   75G  21% /
/dev/sda3       366G  200G  150G  58% /home

分析目录和文件的大小

du 命令
du -sh /path/to/directory/
  • -s:只显示总计。
  • -h:人类可读格式。

示例

du -sh /var/log

结果

1.2G    /var/log

案例:小明发现系统空间不足,使用 du 分析占用空间较大的目录,发现 /var/log 下的日志文件过大,需要清理。


磁盘的复制与备份:dd 命令 📀

基本用法与示例

dd 命令用于按字节复制数据,可以用于备份、复制、生成测试文件等。

备份整个磁盘到镜像文件

sudo dd if=/dev/sda of=/path/to/backup.img bs=4M status=progress
  • if(input file):输入设备或文件。
  • of(output file):输出设备或文件。
  • bs:块大小,设置为 4MB 可提高速度。
  • status=progress:显示进度。

从镜像恢复到磁盘

sudo dd if=/path/to/backup.img of=/dev/sdb bs=4M status=progress

高级用法与注意事项

清零磁盘数据

sudo dd if=/dev/zero of=/dev/sdb bs=1M status=progress
  • 风险提示:此命令会将 /dev/sdb 磁盘的数据全部清零,无法恢复。请务必确认目标设备。

制作启动盘

sudo dd if=ubuntu.iso of=/dev/sdb bs=4M status=progress
  • 将 ISO 文件写入 U 盘,制作可启动的安装介质。

风险提示与安全实践

  • 数据丢失风险dd 命令不做任何校验,一旦指定错误的设备,将导致数据不可恢复的丢失。
  • 确认设备名称:使用 lsblkfdisk -l 确认设备名称。
  • 备份重要数据:在操作前备份重要数据。

交换分区与文件:swaponswapoffmkswap 🔄

创建和启用交换分区

创建分区后,标记为交换分区

sudo mkswap /dev/sda5

启用交换分区

sudo swapon /dev/sda5

永久启用(编辑 /etc/fstab

/dev/sda5  none  swap  sw  0  0

创建和启用交换文件

创建一个交换文件

sudo fallocate -l 2G /swapfile

设置权限

sudo chmod 600 /swapfile

将文件标记为交换空间

sudo mkswap /swapfile

启用交换文件

sudo swapon /swapfile

验证

sudo swapon --show

永久启用(编辑 /etc/fstab

/swapfile  none  swap  sw  0  0

注意事项

  • 安全性:确保交换文件的权限为 600,防止未经授权的访问。
  • 系统稳定性:适当的交换空间有助于系统稳定运行,但过度依赖交换可能导致性能下降。

硬盘性能测试:hdparmdd 🏎️

使用 hdparm 测试硬盘速度

读取缓存速度

sudo hdparm -T /dev/sda

读取磁盘速度

sudo hdparm -t /dev/sda

示例结果

/dev/sda:
 Timing cached reads:   16384 MB in  2.00 seconds = 8205.72 MB/sec
 Timing buffered disk reads:  500 MB in  3.01 seconds = 166.06 MB/sec

使用 dd 进行简单的读写测试

写入测试

dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct

读取测试

dd if=testfile of=/dev/null bs=1G count=1 iflag=direct

注意事项

  • 测试文件大小:应大于系统内存,避免缓存影响结果。
  • 删除测试文件:测试完成后删除 testfile
rm testfile

总结:成为硬盘管理高手的下一步 📚

通过本文的学习,你已经掌握了 Linux 中与硬盘和存储设备管理相关的核心命令。从查看硬盘信息的 lsblk,到分区管理的 fdiskparted,再到高级的 dd 命令,每个工具都有其独特的用途和注意事项。

学习建议

  • 多实践:在虚拟机或测试环境中练习,巩固所学知识。
  • 阅读文档:使用 man 命令获取详细的帮助信息。例如,man lsblk
  • 谨慎操作:特别是涉及数据写入和删除的命令,操作前务必确认。

拓展阅读

  • LVM(逻辑卷管理):学习更高级的存储管理技术。
  • RAID(磁盘阵列):提高数据安全性和读写性能。
  • 文件系统优化:了解不同文件系统的特性,选择合适的文件系统。

小明的感悟:经过这段深入学习,小明对 Linux 系统的硬盘管理有了全面的理解。他意识到,熟练掌握这些命令,不仅能提升工作效率,还能在关键时刻保护重要数据。他对未来的探索充满了信心!


希望这篇文章对你有所帮助,成为你在 Linux 世界中的一监明灯。记住,最好的学习方法就是实践。加油吧,未来的硬盘管理高手!💪

如有任何疑问或建议,欢迎在评论区讨论。我们一起成长,一起进步!🌟

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShuQiHere

啊这,不好吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值