zoukankan      html  css  js  c++  java
  • 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
      

  • 相关阅读:
    设计模式
    C++下char/string跟int型转换比较
    function
    流程控制
    运算符
    type
    language
    phpbasic
    html标签集合
    课题六
  • 原文地址:https://www.cnblogs.com/wf-aiyouwei/p/9416178.html
Copyright © 2011-2022 走看看