Linux磁盘管理
大家好!今天我们将深入探索Linux系统中一个非常关键的主题——磁盘管理。正如我们所知,磁盘空间是任何计算机系统中宝贵的资源,尤其是在Linux服务器上,它不仅关系到数据的存储,还直接影响到系统的性能和稳定性。正确地管理磁盘空间能够确保我们的系统高效运行,同时避免数据丢失和系统故障
什么是磁盘:
磁盘是一种计算机的外部存储器设备。每个扇区的大小固定,为512Byte。扇区也是磁盘的最小存储单位SCSI磁盘:传输速率高,读写性能好,运行稳定,可连接多个设备。可支持热插拔,占用CPU低,但是价格相对来说比较贵,一般用于工作站或服务器上。
磁盘的分区
在进行分区时,首先我们需要查看当前磁盘的一个分区状况,使用命令:
du(Disk Usage)命令用于查看文件和目录的磁盘使用情况。它可以显示指定文件或目录占用的磁盘空间大小,并支持多种选项来自定义输出结果。
基本语法
du [选项] [文件或目录]
常用选项:
-a:显示目录中的所有文件大小
-h:以人类可读的格式显示文件大小(如 K、M、G 等)
-s:只显示总计,而不显示每个子目录的大小
-c:显示多个文件或目录的总和
--max-depth=N:设置目录遍历的最大深度
# 查看所有磁盘设备
fdisk -l
# 查看磁盘使用情况
df -h
# 查看磁盘详细信息
lsblk
进入分区
# 使用fdisk进行分区
fdisk /dev/sdb
格式化
创建分区后,需要进行格式化以创建文件系统。文件系统定义了数据如何在分区上存储、组织和访问。常见的文件系统类型包括ext4、XFS和NTFS等。
# 格式化为ext4文件系统
mkfs.ext4 /dev/sdb1
# 格式化为xfs文件系统
mkfs.xfs /dev/sdb1
挂载硬盘
将分区连接到文件系统的某个目录的过程称为挂载。这样用户就可以通过这个目录访问分区上的文件了。在Linux中,/mnt通常是用于临时挂载点,而/media用于更永久性的挂载点。
# 临时挂载
mount /dev/sdb1 /mnt
卸载
umount /dev/sdb1 /mnt
# 永久挂载,编辑/etc/fstab文件
/dev/sdb1 /mnt ext4 defaults 0 0
Linux中的dd命令是一个功能强大的数据复制和转换工具。它支持从标准输入或文件中读取数据,并根据用户指定的格式转换数据,最后输出到文件、设备或标准输出。
以下是一些常用参数的详解:
if=文件名:指定输入文件名,默认为标准输入。这告诉dd从哪个文件读取数据。
of=文件名:指定输出文件名,默认为标准输出。dd将数据写入到这个指定的文件。
bs=bytes:同时设置输入和输出的块大小
count=代表被复制的块数。
/dev/zero 是一个字符设备,会不断返回 0 值字节(\0)。
给磁盘备份
1.备份磁盘
备份
dd if=/dev/sda1 of=/root/sda1.bak
还原
dd if=/root/sda1.bak of=/dev/sda1
2.清空磁盘
dd if=/dev/zero of=/dev/sdb1
tip:
/dev/zero,是一个输入设备,你可你用它来初始化文件。该设备无穷尽地提供0,可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入字符串0。
/dev/null,它是空设备,也称为位桶(bit bucket)。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。