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