【Linux知识】linux磁盘管理深入了解

常见磁盘管理命令行

在Linux系统中,磁盘管理是一项重要的任务。以下是一些常用的与磁盘管理相关的命令行工具及其基本用法:

  1. lsblk

    • 列出所有可用的块设备(磁盘、分区等)。
    • 用法:lsblk
  2. fdisk

    • 磁盘分区表操作工具,用于创建、删除、修改磁盘分区。
    • 用法:fdisk [设备](例如:fdisk /dev/sda
  3. parted

    • 功能强大的磁盘分区管理工具。
    • 用法:parted [设备](例如:parted /dev/sda
  4. mkfs

    • 创建新的文件系统。
    • 用法:mkfs -t [类型] [设备](例如:mkfs -t ext4 /dev/sda1
  5. fsck

    • 文件系统检查和修复工具。
    • 用法:fsck [设备](例如:fsck /dev/sda1
  6. df

    • 报告文件系统的磁盘空间使用情况。
    • 用法:df [选项](例如:df -h 以人类可读的格式显示)
  7. du

    • 估计文件和目录的磁盘使用情况。
    • 用法:du [选项] [目录](例如:du -sh /home
  8. mount

    • 挂载文件系统。
    • 用法:mount [选项] [设备] [挂载点](例如:mount /dev/sda1 /mnt
  9. umount

    • 卸载文件系统。
    • 用法:umount [设备或挂载点](例如:umount /mnt
  10. hdparm

    • 调整IDE/SATA硬盘参数。
    • 用法:hdparm [选项] [设备](例如:hdparm -Tt /dev/sda 测试设备性能)
  11. smartctl

    • SMART硬盘监控和测试工具。
    • 用法:smartctl [选项] [设备](例如:smartctl -a /dev/sda 查看SMART信息)
  12. lsof

    • 列出打开的文件,可以用来查找哪些进程正在使用特定的文件或设备。
    • 用法:lsof [选项] [文件/目录/设备](例如:lsof /dev/sda
  13. dd

    • 转换和复制文件,也可以用来创建磁盘镜像。
    • 用法:dd if=[输入文件] of=[输出文件] bs=[块大小] count=[块数](例如:dd if=/dev/sda of=sda.img
  14. resize2fs

    • 调整ext2/ext3/ext4文件系统的大小。
    • 用法:resize2fs [设备] [新大小](例如:resize2fs /dev/sda1 100G
  15. e2fsck

    • 检查ext2/ext3/ext4文件系统。
    • 用法:e2fsck [设备]
  16. mkswap

    • 设置交换空间。
    • 用法:mkswap [设备](例如:mkswap /dev/sda2
  17. swaponswapoff

    • 启用和禁用交换空间。
    • 用法:swapon [设备]swapoff [设备](例如:swapon /dev/sda2
  18. lvcreatelvreducelvremove

    • 分别用于创建、缩小和移除LVM(逻辑卷管理)中的逻辑卷。
    • 用法:lvcreate [选项] [卷组] [逻辑卷名](例如:lvcreate -L 10G -n mylogvol myvg
  19. vgcreatevgextendvgreducevgremove

    • 分别用于创建、扩展、缩小和移除LVM中的卷组。
    • 用法:vgcreate [卷组名] [物理卷...](例如:vgcreate myvg /dev/sda
  20. pvcreatepvscanpvremove

    • 分别用于创建物理卷、扫描所有物理卷和移除物理卷。
    • 用法:pvcreate [设备](例如:pvcreate /dev/sda

这些命令是Linux系统管理员进行磁盘管理时常用的工具,可以帮助进行磁盘分区、文件系统创建、磁盘空间检查、挂载和卸载文件系统等操作。

磁盘分区

  1. 创建物理卷(PV)

    • 在磁盘上划分一个分区,并将其标记为物理卷。这通常使用 fdiskparted 命令完成。
    • 例如,使用 fdisk 创建一个新的分区,并使用 partedmklabelmkpart 命令来创建 GPT 分区表和分区。
  2. 初始化物理卷

    • 使用 pvcreate 命令初始化新创建的分区,使其成为 LVM 物理卷。
    • 例如:pvcreate /dev/sdaX(其中 /dev/sdaX 是新分区的设备文件)。
  3. 创建卷组(VG)

    • 使用 vgcreate 命令创建一个新的卷组。
    • 例如:vgcreate my_volume_group /dev/sdaX(将 /dev/sdaX 添加到名为 my_volume_group 的新卷组中)。
  4. 扩展卷组

    • 如果需要,可以使用 vgextend 命令向现有卷组添加更多的物理卷。
    • 例如:vgextend my_volume_group /dev/sdbX(将另一个分区 /dev/sdbX 添加到 my_volume_group 卷组中)。
  5. 查看卷组信息

    • 使用 vgdisplayvgs 命令查看卷组的详细信息。
    • 例如:vgdisplay my_volume_groupvgs
  6. 创建逻辑卷(LV)

    • 在卷组中创建逻辑卷,逻辑卷是实际用于存储数据的卷。
    • 例如:lvcreate -L 10G -n my_logical_volume my_volume_group(在 my_volume_group 卷组中创建一个大小为 10GB 的逻辑卷 my_logical_volume)。
  7. 格式化逻辑卷

    • 创建文件系统以便在逻辑卷上使用。
    • 例如:mkfs.ext4 /dev/my_volume_group/my_logical_volume
  8. 挂载逻辑卷

    • 将逻辑卷挂载到文件系统中的某个目录。
    • 例如:mount /dev/my_volume_group/my_logical_volume /mnt/data

请注意,LVM 提供了灵活的磁盘管理功能,允许在不中断服务的情况下动态调整逻辑卷的大小。在执行这些操作时,确保你有足够的权限(可能需要 sudo),并且对磁盘分区和卷组的配置有充分的了解。错误的操作可能会导致数据丢失。

NAS

NAS 磁盘挂载

在Linux系统中挂载NAS(网络附加存储)设备,通常涉及以下步骤:

  1. 创建挂载目录
    首先,需要在Linux系统中创建一个目录作为挂载点,用于将NAS设备挂载到该目录下。例如,创建一个名为/mnt/nas的挂载点:

    sudo mkdir /mnt/nas
    
  2. 安装必要的软件包
    对于CIFS/SMB协议的NAS,需要安装cifs-utils包:

    sudo apt-get install cifs-utils
    

    对于NFS协议的NAS,需要安装nfs-common包:

    sudo apt-get install nfs-common
    
  3. 挂载NAS设备
    使用mount命令来挂载NAS设备。对于CIFS/SMB协议的NAS,命令如下:

    sudo mount -t cifs -o username=用户名,password=密码 //NAS_IP_ADDRESS/共享目录 /mnt/nas
    

    对于NFS协议的NAS,命令如下:

    sudo mount -t nfs NAS_IP_ADDRESS:/共享目录 /mnt/nas
    

    其中NAS_IP_ADDRESS是NAS设备的IP地址,共享目录是NAS设备上的共享目录路径,用户名密码是访问NAS的凭据。

  4. 验证挂载
    使用df命令来检查NAS设备是否已成功挂载:

    df -h
    
  5. 设置开机自动挂载
    编辑/etc/fstab文件,添加一行配置,实现系统启动时自动挂载NAS:

    sudo nano /etc/fstab
    

    在文件末尾添加如下内容(对于CIFS/SMB协议):

    //NAS_IP_ADDRESS/共享目录 /mnt/nas cifs username=用户名,password=密码 0 0
    

    或者(对于NFS协议):

    NAS_IP_ADDRESS:/共享目录 /mnt/nas nfs defaults 0 0
    

    保存并退出编辑器。然后,使用以下命令重新挂载/etc/fstab文件中定义的所有挂载点:

    sudo mount -a
    
  6. 卸载NAS设备
    当不再需要使用NAS设备时,可以使用umount命令将其卸载:

    sudo umount /mnt/nas
    

请注意,上述命令中的路径和参数需要根据实际情况进行调整。如果你的NAS设备使用的是其他协议或有特殊的挂载选项,你可能需要查阅相应的文档或使用man mount.cifs命令来获取更多信息。

🔐 如何设置NAS设备的访问权限?

在Linux中设置NAS设备的访问权限,通常涉及以下几个步骤:

  1. 用户和用户组管理

    • 在NAS设备上创建用户和用户组,为后续的权限分配做准备。用户是系统中使用NAS的个体,而用户组是将多个用户归类形成的集合。通过合理设置用户和用户组,可以方便地管理权限。
  2. 设置共享文件夹权限

    • 在NAS管理界面中,选择需要设置权限的文件夹,进入其“权限管理”设置界面。为特定的用户或用户组分配读取、写入、执行等权限。一般情况下,子文件夹会继承父文件夹的权限设置,但在特定情况下可以选择“单独权限”配置来覆盖父目录的设置。
  3. 配置文件共享

    • 对于使用NFS协议的NAS,需要在Linux服务器上安装NFS客户端,并将NAS设备附加到Linux成为NFS客户端。安装NFS客户端后,可以使用mount命令挂载NFS路径,例如:mount -t nfs 192.168.5.5:/nfs /mnt,将NAS设备上的/nfs目录挂载到Linux服务器上的/mnt目录下。
  4. 设置访问控制

    • 在NAS的配置文件中,例如/etc/exports,设置共享目录的访问权限。例如,/shared 192.168.0.0/16(rw,root_squash,all_squash,sync,anonuid=1000,anongid=1000),这表示允许192.168.0.0/16网段的用户读写访问/shared目录,并且应用了一些权限控制选项,如root_squashall_squash来增强安全性。
  5. 使用RAM权限策略控制访问

    • 对于阿里云NAS,可以通过RAM权限策略来控制对NAS的访问权限。可以创建自定义策略,允许或拒绝特定用户或角色对NAS资源的访问。
  6. 设置挂载权限

    • 当在Linux客户端挂载NAS共享时,可以通过挂载选项来控制访问权限,例如使用uidgid来指定文件的所有者和组,或者使用ro(只读)和rw(读写)选项来控制挂载点的访问权限。
  7. 定期审查和调整权限

    • 系统使用一段时间后,需要定期审查用户及其权限,尤其是离职员工或不再需要访问特定数据的用户。根据需要调整权限,防止权限冗余和过度开放。
  8. 日志审计与访问控制

    • 启用NAS的日志功能,系统管理员可以追踪文件访问记录,发现异常行为。同时,设定访问控制策略,确保每个用户只有必要的最低权限。

通过这些步骤,可以确保NAS设备的访问权限得到合理配置,既方便用户访问,又保障数据安全。

Mkfs

🧐 mkfs 命令支持哪些文件系统类型?

mkfs 命令在 Linux 中用于创建文件系统,并对物理设备进行格式化。这个命令支持多种文件系统类型,以下是一些常见的文件系统类型:

  1. ext2:Linux 中的第二代扩展文件系统,适用于较小的分区和旧系统。
  2. ext3:在 ext2 的基础上增加了日志功能,提高了数据的可靠性。
  3. ext4:目前广泛使用的文件系统,支持大容量存储,具有更高的性能和可靠性。
  4. xfs高性能的文件系统,特别适合大文件和高并发读写操作。
  5. btrfs:一种先进的文件系统,支持快照、数据去重和内置的RAID功能。
  6. vfat:常用于Windows系统的文件系统,也支持Linux系统,适用于USB驱动器和软盘。
  7. msdos:一种较老的文件系统,通常用于软盘和较旧的USB驱动器。
  8. ntfs:Windows 系统的文件系统,Linux 系统可以通过特定的驱动来读取和写入。
  9. tmpfs:一种内存中的文件系统,用于临时文件存储,数据在系统重启后消失。
  10. minix:一个简单的文件系统,通常用于小型系统或教学目的。

使用 mkfs 命令时,可以通过 -t 选项指定文件系统类型。例如,创建一个 ext4 文件系统可以这样操作:

mkfs -t ext4 /dev/sda1

或者,如果你想要创建一个 XFS 文件系统:

mkfs -t xfs /dev/sda1

在使用 mkfs 命令之前,确保你已经卸载了该设备,并且了解该命令会清除目标设备上的所有数据。此外,一些文件系统(如 XFS)可能需要安装额外的软件包才能使用 mkfs 命令进行格式化。例如,对于 XFS 文件系统,可能需要安装 xfsprogs 包。

Mount

mount 是一个在类 Unix 系统中用于挂载文件系统的命令。它允许你将一个存储设备(如硬盘、分区、光盘、USB 驱动器等)挂载到文件系统的一个目录上,这样你就可以访问该设备上的数据。以下是一些常见的 mount 命令选项和用法:

  1. 基本用法

    mount [选项] <设备> <挂载点>
    
    • <设备> 是你想要挂载的设备或分区,例如 /dev/sda1
    • <挂载点> 是文件系统中的一个目录,例如 /mnt/mydrive
  2. 选项

    • -t <类型>:指定文件系统的类型,如 ext4ntfsiso9660 等。
    • -o <选项>:挂载时的选项,可以是多个,用逗号分隔。例如 ro(只读)、remount(重新挂载)、exec(允许执行二进制文件)等。
    • -a:挂载 /etc/fstab 文件中定义的所有文件系统。
    • -L <标签>:挂载具有指定标签的设备。
    • -U <UUID>:挂载具有指定 UUID 的设备。
    • -v:详细模式,显示更多信息。
    • -r:递归挂载。
    • -n:不更新 /etc/mtab 文件。
    • -i:忽略未挂载的子目录。
  3. 示例

    • 挂载一个 NTFS 文件系统的 USB 驱动器:
      mount -t ntfs /dev/sdb1 /mnt/usb
      
    • 挂载一个只读的 CD-ROM:
      mount -o ro /dev/cdrom /mnt/cdrom
      
    • 挂载一个具有特定标签的分区:
      mount -L mylabel /mnt/mydrive
      
    • 挂载所有在 /etc/fstab 中定义的文件系统:
      mount -a
      
  4. 卸载文件系统
    使用 umount 命令来卸载文件系统:

    umount <挂载点或设备>
    

    例如,卸载 /mnt/usb

    umount /mnt/usb
    
  5. 查看当前挂载的文件系统
    使用 mount 命令不带任何参数,或者使用 df 命令:

    mount
    

    或者:

    df -h
    

    -h 选项表示以人类可读的格式显示(例如,以 KB、MB、GB 显示)。

  6. 自动挂载
    你可以在 /etc/fstab 文件中定义自动挂载的文件系统,这样在系统启动时,这些文件系统会自动挂载。

请注意,挂载文件系统通常需要 root 权限,因此在命令前可能需要使用 sudo。此外,确保你了解每个选项的含义,以避免数据丢失或系统不稳定。

🔑 在Linux中,如何安全地卸载挂载的文件系统?

在Linux中安全地卸载挂载的文件系统,你可以遵循以下步骤和注意事项:

  1. 确认挂载点:使用 df 命令查看当前系统中的所有挂载点及其使用情况。

  2. 检查正在使用的文件:在卸载文件系统之前,确保没有进程正在使用挂载点中的文件。可以使用 lsoffuser 命令来检查。

  3. 卸载文件系统:使用 umount 命令来卸载文件系统。基本语法如下:

    umount /path/to/mount-point
    

    如果卸载时遇到错误,可能是因为有进程正在使用该文件系统,或者文件系统正在忙。

  4. 使用 -l 选项强制卸载:如果卸载命令失败,可以使用 -l 选项强制卸载文件系统:

    umount -l /path/to/mount-point
    

    这个选项并不是马上卸载,而是在该目录空闲后再卸载。

  5. 使用 -f 选项强制卸载:如果文件系统仍然忙,可以使用 -f 选项强制卸载。但请注意,这可能会导致数据损坏,因为强制卸载可能会中断正在进行的I/O操作。

    umount -f /path/to/mount-point
    

    在使用 -f 执行 umount 时应该小心,因为它可能会导致已卸载文件系统中的数据损坏或不一致。

  6. 确认卸载成功:卸载后,再次使用 df 命令确认文件系统是否已经从挂载点卸载。

  7. 注意事项

    • 在卸载文件系统时,不要强制停止服务或杀掉正在使用文件系统的进程,这可能会导致数据损坏。
    • 如果卸载的是根文件系统或当前正在使用的文件系统,需要特别小心。
    • 在卸载USB设备或外部硬盘时,确保数据已经完全写入。

通过遵循上述步骤,你可以安全地在Linux下卸载文件系统,避免数据丢失或损坏的风险。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

问道飞鱼

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值