Linux从入门到精通——linux系统中的磁盘管理

####linux系统中的磁盘管理### 

1.本地存储设备的识别

   fdisk -l                     ##查看真实存在的设备

   cat /proc/partition    ##系统能够识别的设备,系统能识别不代表能够使用

   blkid                        ##系统可使用的设备

   df                            ##系统正在挂载的设备

2.设备的挂载和卸载

   (1)设备的名称

          /dev/xdx              ## /dev/hd0  /dev/hd1  /dev/sda  /dev/sdb 

              注意:hd是并口硬盘    sd是串口硬盘

          /dev/sr0              ##光驱

          /dev/mapper/*     ##虚拟设备

   (2)设备的挂载     

     mount 挂载 把你的设备插到目录上,让目录可以看到设备里的东西

          mount      设备        挂载点

          mount      /dev/sdb1    /mnt                             ##挂载sdb1到mnt

          umount     /mnt | /dev/sdb1                             ##卸载

          mount  -o  ro  /dev/sdb1  /mnt                         ##只读挂载,就不能写入文件等

          mount                                                             ##查看挂载信息

          mount  -o  remount,rw  /dev/sdb1 | /mnt       ##重新读写挂载

3.解决设备正忙情况

    [root@localhost ~]#  umount  /mnt

       umount : /mnt : target is basy .            ##有程序在使用此设备

              (In some cases useful info about processes that the device is found by lsof or fuser(1))

    方法一:

       Fuser  -kvm  /mnt                                ##查看并结束,但是不会卸载

       umount  /mnt

       方法二:

       Lsof  /mnt                                           ##会出现正在使用该进程的pid

       Kill  -9  进程的pid

        umount  /mnt

4.给设备安装文件系统

=================================================================================================

  新装的虚拟机,想要添加一个新的虚拟硬盘。

  在虚拟机处,打开以下界面,点击 add 添加新的虚拟磁盘,如下图:

  

  然后,如下图所示,点击 Storage —> 选择device type为Disk device —> bus type选择为 virtio —> 点击finish,添加成功

  

  fdisk -l 查看是否有新的磁盘添加显示,如果没有显示新磁盘信息,那么需要手动同步分区表

=====================================================================================================================

   mount  /dev/vdb1  /mnt          刚开始两个不能挂载,/dev/vdb1是硬件  /mnt是软件  需要在硬件上面安装软件才能和软件沟通

   需要安装filesystem这个文件系统,要格式化

  

   ext3   rhel5及之前的版本   (理论值)最多支持32TB的文件系统和2t文件f,实际2tb文件系统,16G文件

   ext4   rhel6            1EB(1024TB)         16TB

   xfs    rhel7            18EB        9eb     7G/s   写入速度4G/s   (设备默认是xfs)

   mkfs . xfs  /dev/vdb1         ##格式化vdb1为xfs

   mount  /dev/vdb1  /mnt     ##这样的挂载是临时的

   上面的挂载是临时的,当reboot之后,系统自动执行umount。如果想要永久挂载的话,就要写进文件里/etc/fstab 这个文件在开机的时候,系统会自动读取文件中的挂载策略并且挂载(到相应的地方)

   vim /etc/fstab                   ##文件写错的话系统就起不来了

   设备       挂载点   文件系统     挂载参数    是否备份    是否检测

   /dev/vdb1   /mnt       xfs           defaults           0                0   

                       ##这一步执行完以后用df命令,发现没有挂载

    mount -a      ##读取那个文件中的挂载策略,使没有生效的策略立即生效,验证是否正确(man 5 fstab)
    df                ##再此df就会出现挂载

   注意:rc.local这个是脚本,执行的是命令。fstab是策略,系统自动识别,开始的时间比rc.local开始的早。


5.fstab的报错
    vim /etc/fstab
    /dev/vdb1  /mnt  defaults 0 0     ##正确的写法
    /dev/vdb1  /mnt  defa     0 0      ##错误的写法
       
    reboot                                      ##系统重启就会起不来

  
    解决方法:

    先输入一个root的密码,上面会有报错的信息,
    在无图形的界面输入vim /etc/fstab
    将错误的这行命令用“#”注释起来,wq退出保存
    reboot(系统就能重启来了)

    partprobe 手动同步分区表
    当电脑某一个设备正在被系统使用的时候,他自动读取分区表就会失败,所以就要我们手动

6.swap分区管理

  Swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中


   (1)swap分区的建立
         (设定分区并设定分区标签为swap)
    将/dev/vdb6变成swap的  fdisk /dev/vdb
    t          ##修改分区标签
    数字    ##修改第几个的标签
    l          ##列出所有代码
    82       ##修改为swap
    wq       ##退出保存

    partprobe                     ##同步分区表
    mkswap /dev/vdb6       ##对设备进行swap格式化
    swapon -a /dev/vdb6   ##激活
    swapon -s                   ##查看是否激活

   注意:这个也是临时的,如果想要永久激活,还是要写入 /dev/fstab
   
    vim /etc/fstab

         设备       挂载点   文件系统     挂载参数    是否备份    是否检测
    /dev/vdb6      swap       swap         defaults          0                0

   (2)swap的删除
    vim /etc/fstab
    #/dev/vdb6  swap  swap  defaults  0  0              ##将这行错误的删除或者注释起来
    swapoff /dev/vdb6                                             ##删除
    swapon -s                                                         ##查看

7.用户配额设定(分配额度,最大能使用额度)
   配额是针对分区(比方:student用户在某一个设备的配额是定的,在别的不一定,如果配额是针对用户的话,那就代表在电脑里只能编写定额的文件)
  
   mount -o usrquota /dev/vdb7 /student
   chmod 777 /student       ##让用户也有写入权限
   edquota -u student         ##设定所有人的配额,在开机的时候会失效,因为挂载也是临时的

 

   永久挂载:
   vim /etc/fstab
   /dev/vdb7  /student  xfs   defaults,usrquota(参数)  0  0

   测试:(用设定的用户测)
   dd if=/dev/zero of=/student/studentfile bs=1M count=200
   du -s /student

   示例:
    重新建立一个磁盘分区/dev/vdb7
    mkdir /student
    chmod 777 /student 
    ls -ld /student
    mount /dev/vdb7  /student
    ls -ld /student   ##此时权限改成了755

   注意:先挂设备再改目录权限,因为目录权限本身是记录在设备里的,每挂载之前和挂载之后度的设备不一样,刚开始读的是/dev/vda1,挂载后读的是/dev/vdb7.

8.设备的加密    luks(基于文件系统的加密)
   cryptsetup luksFormat /dev/vdb8                        ##加密格式化
            ##YES要大写

   cryptsetup open /dev/vdb8 hello(名字任意的)
   mkfs.xfs /dev/mapper/hello                                 ##格式化       mapper表示虚拟设备
   mount /dev/mapper/hello /mnt
   touch /mnt/file{1..6}

   umount /mnt
   cryptsetup close hello

   查看:
   cryptsetup open /dev/vdb8 hello                          ##需要密码
   mount /dev/mapper/hello /mnt
  

原文地址:https://www.cnblogs.com/wf-aiyouwei/p/9416178.html