磁盘管理
跳转到“磁盘管理”cd、df、dirs、du、edquota、eject、lndir、ls、mcd、mdeltree、mdu、mkdir、mlabel、mmd、mmount、mrd、mzip、pwd、quota、quotacheck、quotaoff、quotaon、repquota、rmdir、rmt、stat、tree、umount
mount \umount
跳转到“mount \umount”以下是mount和umount命令的基本信息,以及中文支持的示例,整理成表格形式:
mount命令:
| 命令 | 描述 |
|---|---|
mount | 挂载文件系统到指定挂载点 |
| 基本语法 | mount [选项] 设备 文件夹 |
| 选项 | -t: 指定文件系统类型-o: 指定挂载选项-n: 禁止更新/etc/mtab-r: 以只读方式挂载 |
| 示例 | sudo mount /dev/sda1 /mntsudo mount -t ntfs -o ro /dev/sdb1 /mnt/ntfsmount |
umount命令:
| 命令 | 描述 |
|---|---|
umount | 卸载已挂载的文件系统 |
| 基本语法 | umount [选项] 挂载点 |
| 选项 | -l: 允许立即释放挂载点上的资源-f: 强制卸载,即使文件系统正在被使用 |
| 示例 | sudo umount /mntsudo umount -f /mnt |
| 命令 | 描述 | 示例 |
|---|---|---|
mount | 挂载文件系统到指定的挂载点 | mount /dev/sdb1 /mnt |
mount -a | 挂载 /etc/fstab 文件中列出的所有文件系统 | mount -a |
mount -t type | 指定文件系统的类型 | mount -t ext4 /dev/sdb1 /mnt |
mount -o options | 指定挂载选项,如读写权限、用户权限等 | mount -o rw,user /dev/sdb1 /mnt |
mount --bind | 将一个目录挂载到另一个目录,创建目录的镜像 | mount --bind /source /destination |
mount -r | 以只读模式挂载文件系统 | mount -r /dev/sdb1 /mnt |
mount -u | 更新挂载点的状态信息 | mount -u /mnt |
mount -l | 列出当前挂载的文件系统 | mount -l |
umount | 卸载已挂载的文件系统 | umount /mnt |
umount -a | 卸载所有已挂载的文件系统 | umount -a |
umount -l | 强制卸载,即使文件系统忙碌 | umount -l /mnt |
示例说明:
- 挂载设备
/dev/sdb1到目录/mnt:mount /dev/sdb1 /mnt - 挂载
/etc/fstab文件中列出的所有文件系统:mount -a - 指定文件系统类型为 ext4 并挂载设备
/dev/sdb1到目录/mnt:mount -t ext4 /dev/sdb1 /mnt - 指定挂载选项为读写和用户权限,并挂载设备
/dev/sdb1到目录/mnt:mount -o rw,user /dev/sdb1 /mnt - 将目录
/source挂载到目录/destination,创建目录的镜像:mount --bind /source /destination - 以只读模式挂载设备
/dev/sdb1到目录/mnt:mount -r /dev/sdb1 /mnt - 更新挂载点
/mnt的状态信息:mount -u /mnt - 列出当前挂载的文件系统:
mount -l - 卸载已挂载的文件系统
/mnt:umount /mnt - 卸载所有已挂载的文件系统:
umount -a - 强制卸载目录
/mnt,即使文件系统忙碌:umount -l /mnt
使用 --bind 选项和不使用的主要区别在于创建的挂载点之间是否存在镜像关系。
-
使用
--bind选项:终端窗口 mount --bind /source /destination/destination是/source的镜像。任何对/source中的更改都会反映在/destination中,反之亦然。- 这种方式创建了两个挂载点,但它们之间是数据的镜像关系。
-
不使用
--bind选项:终端窗口 mount /dev/sdb1 /mnt- 在这种情况下,
/mnt是/dev/sdb1的挂载点,但它不是/dev/sdb1的镜像。任何对/mnt中的更改都直接影响/dev/sdb1,反之亦然。 - 这种方式创建了一个挂载点,但没有像
--bind那样创建数据的镜像。
- 在这种情况下,
总的来说,--bind 选项允许你在文件系统中创建一个目录或文件的镜像,这意味着两个挂载点之间的数据是同步的。在没有 --bind 的情况下,挂载点直接映射到原始的设备或目录,更像是简单的访问。选择使用哪种方式取决于你的需求,是否需要创建数据的镜像。
磁盘维护
跳转到“磁盘维护”badblocks、cfdisk、dd、e2fsck、ext2ed、fdisk、fsck.ext2、fsck、fsck.minix、fsconf、hdparm、losetup、mbadblocks、mformat、mkbootdisk、mkdosfs、mke2fs、mkfs.ext2、mkfs、mkfs.minix、mkfs.msdos、mkinitrd、mkisofs、mkswap、mpartition、sfdisk、swapoff、swapon、symlinks、sync
dd
跳转到“dd”当使用 dd 命令时,我们可以使用不同的参数和选项来实现不同的功能。以下是 dd 命令的详细教程:
| 参数/选项 | 描述 | 用法示例 |
|---|---|---|
if | 输入文件名,指定源文件 | if=input_file |
of | 输出文件名,指定目的文件 | of=output_file |
ibs | 输入块大小(字节数),指定一个块的大小 | ibs=bytes |
obs | 输出块大小(字节数),指定一个块的大小 | obs=bytes |
bs | 同时设置读入和输出的块大小,字节数 | bs=bytes |
cbs | 转换缓冲区大小,字节数 | cbs=bytes |
skip | 从输入文件开头跳过的块数 | skip=blocks |
seek | 从输出文件开头跳过的块数 | seek=blocks |
count | 仅拷贝的块数,块大小等于 ibs 指定的字节数 | count=num_blocks |
conv | 用指定的参数转换文件 | conv=conversion |
status=progress | 显示复制进度 | status=progress |
换参数 (conv):
ascii:转换 ebcdic 为 asciiebcdic:转换 ascii 为 ebcdicibm:转换 ascii 为 alternate ebcdicblock:把每一行转换为长度为cbs,不足部分用空格填充unblock:使每一行的长度都为cbs,不足部分用空格填充lcase:把大写字符转换为小写字符ucase:把小写字符转换为大写字符swab:交换输入的每对字节noerror:出错时不停止notrunc:不截短输出文件sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐
示例:
-
将一个设备的内容拷贝到另一个设备:
终端窗口 dd if=/dev/sdX of=/dev/sdY bs=4M status=progress -
创建一个包含分区表的.img 文件:
终端窗口 dd if=/dev/zero of=full_image.img bs=1M count=512fdisk full_image.img # 使用 fdisk 在文件中创建分区表 -
从设备备份引导扇区:
终端窗口 dd if=/dev/sdX of=boot_sector_backup.img bs=512 count=1 -
使用 conv 参数进行转换:
终端窗口 dd if=input_file of=output_file conv=ucase
这些示例和参数组合提供了一些基本用法,根据具体需求可以灵活选择适当的参数。在使用 dd 时,请务必谨慎,确保指定正确的输入和输出文件,以避免意外数据损失。
fdisk
跳转到“fdisk”| fdisk 操作 | 解释 |
|---|---|
| a | 开关可启动标志 |
| b | 编辑嵌套的 BSD 磁盘标签 |
| c | 开关 DOS 兼容性标志 |
| d | 删除分区 |
| F | 列出未分区的空闲区 |
| l | 列出已知分区类型 |
| n | 添加新分区 |
| p | 打印分区表 |
| t | 更改分区类型 |
| v | 检查分区表 |
| i | 打印某个分区的相关信息 |
| m | 打印此菜单 |
| u | 更改显示/记录单位 |
| x | 更多功能(仅限专业人员) |
| I | 从 sfdisk 脚本文件加载磁盘布局 |
| O | 将磁盘布局转储为 sfdisk 脚本文件 |
| w | 将分区表写入磁盘并退出 |
| q | 退出而不保存更改 |
| g | 新建一份 GPT 分区表 |
| G | 新建一份空 GPT(IRIX)分区表 |
| o | 新建一份的空 DOS 分区表 |
| s | 新建一份空 Sun 分区表 |
| f | 检查文件系统sudo fsck -f / |
fdisk 分区操作教程:
(1)显示设备的分区表信息
要显示设备的分区表信息,可以使用以下命令:
fdisk -l /dev/sdb(2)创建新分区
fdisk /dev/sdb进入 fdisk 交互界面后,依次输入以下命令:
n(创建新分区,可以默认直接回车)p(创建主分区,可以默认直接回车)1(输入分区号,设置为 1,可以默认直接回车)- [起始扇区] (设置起始扇区,可以默认直接回车)
- [结束扇区] (设置结束扇区,可以默认直接回车)
w(将分区表写入磁盘并退出)
(3) 删除分区
fdisk /dev/sdb进入 fdisk 交互界面后,依次输入以下命令:
d(删除分区)- [分区号] (要删除的分区号)
w(将分区表写入磁盘并退出)
(4)创建分区、格式化系统、挂载分区
fdisk /dev/sdb#设置分区类型>> p #查看分区>> t #t设置分区类型 > 选择分区 > l 查看分区类型 > 选择分区格式 > w 写入修改执行后按n,然后一直回车到没有选项。接着,可以按照以下步骤进行格式化和挂载:
-
格式化系统:
终端窗口 mkfs.xfs /dev/sdb1 # 设置文件系统为xfs,也可以设置为ext4 -
创建挂载目录:
终端窗口 mkdir /ssd -
手动临时挂载:
终端窗口 mount /dev/sdb1 /ssd或永久挂载:
终端窗口 echo "/dev/sdb1 /ssd xfs defaults 0 0" >> /etc/fstabmount -a
注意事项:
- 使用 fdisk 命令时,请小心操作,确保正确选择设备文件名。
- 在对磁盘进行分区操作前,务必备份重要数据,以防止数据丢失。
- 如果在命令行中出现
bash: fdisk: command not found的错误提示,说明 fdisk 命令未安装,可以按照前述方式进行安装。
mkfs
跳转到“mkfs”mkfs 命令用于创建文件系统。下面是一些常见的 mkfs 命令及其用法,这些命令用于在不同类型的分区上创建不同类型的文件系统。请注意,具体的命令可能会根据文件系统类型和系统配置而有所不同。
注意:使用 mkfs 命令会格式化文件系统并清除其中的所有数据,请谨慎操作。
| 命令 | 描述 | 示例 |
|---|---|---|
mkfs.ext4 | 创建 ext4 文件系统 | sudo mkfs.ext4 /dev/sdX1 |
mkfs.ext3 | 创建 ext3 文件系统 | sudo mkfs.ext3 /dev/sdX1 |
mkfs.ext2 | 创建 ext2 文件系统 | sudo mkfs.ext2 /dev/sdX1 |
mkfs.xfs | 创建 XFS 文件系统 | sudo mkfs.xfs /dev/sdX1 |
mkfs.btrfs | 创建 Btrfs 文件系统 | sudo mkfs.btrfs /dev/sdX1 |
mkfs.vfat | 创建 FAT32 文件系统 | sudo mkfs.vfat /dev/sdX1 |
mkfs.ntfs | 创建 NTFS 文件系统 | sudo mkfs.ntfs /dev/sdX1 |
格式说明:
- EXT4:只用于 Linux 系统的内部磁盘
- NTFS:与 Windows 共用的磁盘
- FAT:所有系统和设备共用的磁盘
swap
跳转到“swap”Swap 是一种虚拟内存技术,用于将不常用的内存页面移到硬盘上,以释放物理内存供其他正在运行的程序使用。当系统的物理内存(RAM)不足以容纳所有运行的进程时,操作系统会使用 Swap 来提供额外的内存空间。
具体来说,Swap 的作用有以下几个方面:
-
提供额外内存空间: 当物理内存用尽时,操作系统将不活跃的内存页移到 Swap 区,以腾出物理内存供当前运行的进程使用。
-
支持内存回收: 操作系统通过将不常用的内存页移到 Swap 区来实现内存回收。这允许系统维持更多活跃进程而无需增加物理内存。
-
应对内存泄漏: 如果某个进程发生内存泄漏,占用大量内存而不释放,Swap 可以缓解物理内存的压力,避免系统因内存耗尽而崩溃。
Swap 可以是一个独立的分区,也可以是一个文件。在 Linux 系统中,Swap 分区通常在安装过程中创建,但用户也可以手动配置或更改 Swap 分区。
需要注意的是,虽然 Swap 提供了额外的内存空间,但由于硬盘速度相比内存较慢,使用 Swap 会导致性能下降。因此,过度使用 Swap 可能会影响系统响应速度。在设计系统时,应该合理规划物理内存大小,以尽量减少对 Swap 的需求。
| 命令 | 描述 | 示例 |
|---|---|---|
swapon -s | 显示当前启用的 Swap 分区信息 | swapon -s |
free -h | 显示系统内存和 Swap 使用情况 | free -h |
mkswap | 将分区或文件设置为 Swap 分区 | sudo mkswap /dev/sdX1 |
swapon | 启用指定的 Swap 分区 | sudo swapon /dev/sdX1 |
swapoff | 禁用指定的 Swap 分区 | sudo swapoff /dev/sdX1 |
sysctl | 临时调整系统参数,包括 Swappiness | sudo sysctl vm.swappiness=30 |
swappiness | 永久调整 Swappiness 值 | 在 /etc/sysctl.conf 或 /etc/sysctl.d/ 中添加 vm.swappiness=30 |
/etc/fstab | 永久配置系统挂载点,包括 Swap 分区 | 添加 /dev/sdX1 swap swap defaults 0 0 到 /etc/fstab |