1. 硬盘和分区基础:
- Linux使用设备文件(例如 `/dev/sda`)来表示硬盘。
- 使用`fdisk`或`parted`等工具对硬盘进行分区。
# 示例:使用fdisk进行分区
sudo fdisk /dev/sda
2. 查看磁盘信息:
- 使用`lsblk`或`fdisk`查看系统上的磁盘和分区信息。
# 示例:查看磁盘信息
lsblk
3. 格式化分区:
- 在创建分区后,需要使用`mkfs`命令格式化为指定的文件系统类型。
# 示例:格式化分区为ext4文件系统
sudo mkfs.ext4 /dev/sda1
4. 挂载分区:
- 使用`mount`命令将格式化后的分区挂载到指定的目录。
# 示例:挂载分区到/mnt目录
sudo mount /dev/sda1 /mnt
5. 永久挂载:
- 在`/etc/fstab`文件中添加条目以实现开机自动挂载。
# 示例:编辑fstab文件
sudo nano /etc/fstab
# 添加一行
/dev/sda1 /mnt ext4 defaults 0 2
6. 磁盘和分区大小调整:
- 使用`resize2fs`和`resizepart`等命令在线调整文件系统和分区大小。
# 示例:调整文件系统大小
sudo resize2fs /dev/sda1
7. 磁盘性能监控:
- 使用`iostat`、`iotop`等工具监控磁盘的读写性能。
# 示例:使用iostat监控磁盘性能
iostat -d -k 1
8. RAID配置:
- 使用`mdadm`命令配置软件RAID,提高数据冗余和性能。
# 示例:创建RAID1
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
9. LVM(逻辑卷管理):
- LVM提供了灵活的磁盘管理,允许在逻辑卷和卷组之间动态调整空间。
# 示例:创建逻辑卷和卷组
sudo pvcreate /dev/sda1
sudo vgcreate myvg /dev/sda1
sudo lvcreate -n mylv -l 100%FREE myvg
10. 磁盘配额:
- 使用`quota`命令和`/etc/fstab`中的`usrquota`和`grpquota`选项实现用户和组磁盘配额。
# 示例:启用用户磁盘配额
sudo nano /etc/fstab
# 添加usrquota选项
/dev/sda1 /mnt ext4 defaults,usrquota 0 2
# 重载文件系统
sudo mount -o remount /mnt
11. 查找大文件和目录:
- 使用`du`和`sort`命令结合查找磁盘上的大文件。
# 示例:查找最大的文件和目录
du -h /path/to/directory | sort -rh | head -n 10
12. SWAP分区:
- 创建和启用SWAP分区以提供额外的虚拟内存空间。
# 示例:创建SWAP分区
sudo fallocate -l 2G /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
13. 磁盘清理:
- 使用`rm`、`find`等命令删除不需要的文件,释放磁盘空间。
# 示例:删除指定类型的文件
find /path/to/directory -name "*.log" -type f -delete
14. 磁盘快照:
- 使用`LVM`或`btrfs`等支持快照的文件系统创建磁盘快照
15. 磁盘快照(续):
- 使用`LVM`创建快照,以便在文件系统发生变化时能够还原。
# 示例:创建LVM快照
sudo lvcreate -L 5G -s -n snapshot_name /dev/myvg/mylv
16. 磁盘修复:
- 使用`fsck`命令检查和修复文件系统错误。
# 示例:检查和修复文件系统
sudo umount /dev/sda1
sudo e2fsck -f /dev/sda1
17. 磁盘加密:
- 使用LUKS对整个分区进行加密。
# 示例:使用LUKS加密分区
sudo cryptsetup luksFormat /dev/sda1
sudo cryptsetup open --type luks /dev/sda1 myencryptedpartition
18. 磁盘空间预警:
- 设置磁盘空间使用的阈值,以便在空间不足时收到警告。
# 示例:设置磁盘空间预警
sudo nano /etc/fstab
# 添加noatime和usrquota选项
/dev/sda1 /mnt ext4 defaults,noatime,usrquota 0 2
19. 磁盘复制和迁移:
- 使用`dd`命令复制磁盘的内容,或使用`rsync`迁移文件。
# 示例:使用dd复制磁盘
sudo dd if=/dev/sda1 of=/dev/sdb1 bs=4M
20. 磁盘恢复:
- 使用备份工具(例如`rsync`、`tar`、`scp`)从备份中还原数据。
# 示例:使用rsync从备份还原
rsync -avz /backup/directory/ /restore/directory/
21. 磁盘分析工具:
- 使用`du`、`ncdu`等工具分析磁盘使用情况。
# 示例:使用ncdu分析磁盘使用情况
sudo apt-get install ncdu
ncdu /path/to/directory
22. NVMe和SSD优化:
- 针对NVMe和SSD进行一些性能优化,例如使用`fstrim`定期释放空间。
# 示例:定期释放SSD空间
sudo fstrim -v /
23. 磁盘缓存:
- 使用`sync`命令强制将缓存数据写入磁盘。
# 示例:强制刷新磁盘缓存
sync
24. ZFS文件系统:
- 在支持的系统上,使用ZFS文件系统提供高级的数据管理功能。
# 示例:创建ZFS文件系统
sudo zpool create mypool /dev/sda1
25. Btrfs文件系统:
- Btrfs是另一种先进的文件系统,支持快照、压缩等功能。
# 示例:创建Btrfs文件系统
sudo mkfs.btrfs /dev/sda1
26. 查看文件系统类型:
- 使用`blkid`命令可以查看磁盘上的文件系统类型。
# 示例:查看文件系统类型
blkid /dev/sda1
27. 创建RAM磁盘:
- 使用`tmpfs`创建一个基于内存的文件系统,适用于需要快速访问的临时文件。
# 示例:创建RAM磁盘
sudo mount -t tmpfs -o size=1G tmpfs /mnt/ramdisk
28. 使用`hdparm`优化硬盘性能:
- `hdparm`可以用来查看和调整硬盘参数以优化性能。
# 示例:查看硬盘信息
sudo hdparm -I /dev/sda
29. 检测坏块:
- 使用`badblocks`命令检测硬盘上的坏块。
# 示例:检测坏块
sudo badblocks -v /dev/sda
30. 日志管理:
- 定期检查系统日志,特别是`/var/log`目录下的文件,以了解磁盘和文件系统的问题。
# 示例:查看系统日志
tail -n 50 /var/log/syslog
31. 磁盘容量预估:
- 使用`df`命令结合`awk`命令估算文件系统的剩余空间。
# 示例:估算文件系统剩余空间
df -h | awk '$NF=="/"{printf "剩余空间:%s\n", $4}'
32. 远程挂载磁盘:
- 使用`sshfs`命令将远程磁盘挂载到本地目录。
# 示例:远程挂载磁盘
sshfs user@remote:/path/to/remote/directory /local/mount/point
33. 磁盘分区表备份:
- 使用`dd`命令备份磁盘分区表,以防止分区表损坏时能够恢复。
# 示例:备份磁盘分区表
sudo dd if=/dev/sda of=/path/to/backup/sda_partition_table_backup bs=512 count=1
34. 磁盘分区表还原:
- 使用`dd`命令将备份的磁盘分区表还原到磁盘。
# 示例:还原磁盘分区表
sudo dd if=/path/to/backup/sda_partition_table_backup of=/dev/sda bs=512 count=1
35. 磁盘IO压力测试:
- 使用`fio`工具进行磁盘IO性能测试。
# 示例:进行磁盘IO压力测试
sudo fio --name=mytest --ioengine=sync --rw=read --bs=4k --numjobs=16 --size=10G --time_based
36. NVMe磁盘信息:
- 使用`nvme`命令查看NVMe磁盘信息。
# 示例:查看NVMe磁盘信息
sudo nvme list
37. 磁盘SMART信息:
- 使用`smartctl`命令查看硬盘的SMART信息。
# 示例:查看硬盘SMART信息
sudo smartctl -a /dev/sda
38. 调整磁盘读写调度器:
- 使用`echo`命令将I/O调度器切换为`deadline`或`noop`。
# 示例:切换I/O调度器为deadline
sudo echo "deadline" > /sys/block/sda/queue/scheduler
39. 磁盘阵列监控:
- 使用`mdadm`命令监控软件RAID的状态。
# 示例:监控RAID状态
sudo mdadm --detail /dev/md0
40. 磁盘缓存策略:
- 使用`hdparm`设置硬盘缓存策略。
# 示例:设置硬盘缓存为writeback
sudo hdparm -W1 /dev/sda
41. 定时磁盘清理:
- 使用`cron`定时清理不必要的临时文件。
# 示例:定时清理临时文件(每周一执行)
1 find /tmp -type f -atime +7 -exec rm {} \;
42. LVM快照自动创建:
- 使用`lvcreate`和`cron`定期自动创建LVM快照。
# 示例:每天自动创建LVM快照
lvcreate -L 5G -s -n snapshot_name /dev/myvg/mylv
43. 磁盘使用情况图形化:
- 使用`ncdu`或`baobab`等工具图形化查看磁盘使用情况。
# 示例:使用baobab查看磁盘使用情况
baobab
44. 检测SSD寿命:
- 使用`smartctl`命令检测SSD寿命。
# 示例:检测SSD寿命
sudo smartctl -a /dev/sda
45. 文件系统巡检:
- 使用`fsck`命令在系统重启时对文件系统进行巡检。
# 示例:设置下次启动时进行文件系统巡检
sudo touch /forcefsck
46. 自动清理旧的内核文件:
- 使用`purge-old-kernels`命令自动清理旧的内核文件。
# 示例:自动清理旧的内核文件
sudo purge-old-kernels
47. 清理回收站:
- 定期清理回收站,释放磁盘空间。
# 示例:清理回收站
rm -rf ~/.local/share/Trash/*
48. 系统日志定期清理:
- 使用`logrotate`工具定期清理系统日志。
# 示例:配置logrotate
sudo nano /etc/logrotate.conf