• linux磁盘管理


    摘自:http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=7621&extra=page%3D1%26filter%3Dtypeid%26typeid%3D36

    1. 查看磁盘或者目录的容量
    df 查看磁盘各分区使用情况
    不加参数以k为单位
    df -i inode数,df -h 以G或者T或者M
    df -m 以M单位显示

    du 查看目录或者文件的容量
    不加参数 以k为单位显示
    -s 列出总和 -a 列出所有文件和目录
    -k 以k为单位 -m 以M为单位
    -h 最合适的单位 最常用组合 -sh
    扩展 ls -lh 看到的大小和du相比

    2. 磁盘的分区和格式化
    fdisk -l 查看磁盘和分区,大于2T用GPT
    fdisk 设备名 m 列出常用命令,常用的有‘p’, ‘n’, ‘d’, ‘w’, ‘q’.
    mke2fs, mkfs.ext2, mkfs.ext3, mkfs.ext4
    -t 文件系统格式 ext3 ext4
    -b 指定每个数据块大小,目前支持1024, 2048 及4096
    -L 分区标签
    格式化时默认blocks (5.00%) reserved for the super user //给超级用户预留的一部分空间,用来作为特殊用途
    -m 可以更改这个比例,如 mke2fs -m 0.1 /dev/sdb1 //意思是,只预留出0.1%

    3. 挂载、卸载磁盘分区
    mount 不加任何选项和参数,查看已经挂载情况
    mount 格式 mount -t type /dev/sda5 /mnt
    mount -t 指定挂载分区格式,如 -t ext3
    umount /dev/sda5 或者 umount /mnt
    umount -l 强制卸载
    mount -o 后面跟各种选项,比如remount,ro,noatime等,具体选项如下:

    “async/sync” : async表示和磁盘和内存不同步,系统每隔一段时间把内存数据写入磁盘中,而sync则会时时同步内存和磁盘中数据;
    “auto/noauto” : 开机自动挂载/不自动挂载;
    “default” : 按照大多数永久文件系统的缺省值设置挂载定义,它包含了rw, suid, dev, exec, auto, nouser, async
    “ro” : 按只读权限挂载 ;
    “rw” : 按可读可写权限挂载 ;

    “exec/noexec” : 允许/不允许可执行文件执行,但千万不要把根分区挂载为noexec,那就无法使用系统了,连mount命令都无法使用了,这时只有重新做系统了;
    “user/nouser” : 允许/不允许root外的其他用户挂载分区,为了安全考虑,请用nouser ;
    “suid/nosuid” : 允许/不允许分区有suid属性,一般设置nosuid ;
    “usrquota” : 启动使用者磁盘配额模式,磁盘配额相关内容在后续章节会做介绍;
    “grquota” : 启动群组磁盘配额模式;

    特殊用法:mount -o loop 1.iso /mnt #挂载镜像文件
    mount --bind /dir1 /dir2 #挂载目录

    mount -a 会根据/etc/fstab 挂载所有分区
    UUID是如何来的,使用命令 blkid
    blkid命令 后可以不跟设备名,列出所有
    mount UUID=“……” /mnt
    使用UUID的好处是,多块磁盘,如果在服务器上换了插槽位置,设备名会变,但UUID是唯一的

    4. 配置文件 /etc/fstab
    第一列就是分区的标识,可以LABEL,也可以UUID,当然也可以 (/dev/sda1);
    第二列是挂载点;
    第三列是分区的格式;
    第四列则是mount的一些挂载参数,一般情况下,直接写defaults即可;
    第五列的数字表示是否被dump备份,是的话这里就是1,否则就是0;第六列是开机时是否自检磁盘。1,2都表示检测,0表示不检测,
    / 分区必须设为1,而且整个fstab中只允许出现一个1,1比2优先级高,所以先检测1,然后再检测2,如果有多个分区需要开机检测那么都设置成2吧,
    1检测完了后会同时去检测2。

    lvm配置 (参考内容,大家自行实践)
    LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。支持动态扩充磁盘空间。
    首先从空的硬盘sdb上创建两个分区sdb1 1G, sdb2 2G。
    1)创建逻辑卷
    pvcreate /dev/sdb1 /dev/sdb2 //创建物理卷
    pvdisplay //可以列出已经创建的物理卷
    vgcreate vgdata /dev/sdb1 /dev/sdb2 //创建卷组 vgdata ,并将刚才创建好的两个物理卷加入该卷组
    vgdisplay //可以列出已经建好的卷组
    #默认PE大小为4MB,PE是卷组的最小存储单元.可以通过 –s参数修改大小。

    lvcreate -L 500M -n lvdata1 vgdata //分割500M给新的逻辑卷lvdata1
    lvdisplay //列出当前的逻辑卷

    mkfs.ext4 /dev/vgdata/lvdata1 //格式化逻辑卷
    mount /dev/vgdata/lvdata1 /aming //挂载逻辑卷

    2)扩展逻辑卷
    逻辑卷lvdata1不够用了,我们如何给他增加空间呢?
    lvextend –L +500M /dev/vgdata/lvdata1 //给lvdata1增加500M空间。
    resize2fs /dev/vgdata/lvdata1 //同步文件系统

    3)扩展卷组
    当卷组不够用的情况下,我们也是可以扩展卷组的。我们再创建一个新的分区叫做/dev/sdb3.
    vgextend vgdata /dev/sdb3 //把sdb3加入到卷组vgdata中

    4)减少逻辑卷大小
    卸载 --> e2fsck 检测剩余空间 --> resize2fs 同步文件系统 --> 使用lvreduce命令将逻辑卷减少
    注意:文件系统大小和逻辑卷大小一定要保持一致才行。如果逻辑卷大于文件系统,由于部分区域未格式化成文件系统会造成空间的浪费。

    umount /data1
    e2fsck -f /dev/mapper/vgdata-lvdata1
    resize2fs /dev/mapper/vgdata-lvdata1 700M
    lvreduce -L 700M /dev/vgdata/lvdata1
    mount /dev/vgdata/lvdata1 /data1

    5) 当磁盘或分区损坏时,如何转移数据
    pvmove 转移空间数据 --> vgreduce命令将即将坏的磁盘或者分区从卷组vgdata里面移除除去 --> pvremove命令将即将坏的磁盘或者分区从系统中删除掉 --> 拆除或修复磁盘
    pvmove /dev/sdb1
    vgreduce vgdata /dev/sdb1
    pvremove /dev/sdb1

    6) 删除整个逻辑卷
    umount卸载逻辑卷 --> 修改配置文件/etc/fstab(若是之前更改过) --> lvremove 删除逻辑卷lvdata1 --> vgremove 删除卷组vgdata --> pvremove 将物理卷转化成普通分区
    umount /dev/vgdata/lvdata1
    lvremove /dev/vgdata/lvdata1
    vgremove vgdata
    pvremove /dev/sdb2
    pvremove /dev/sdb3

    When you are lost, follow your heart
  • 相关阅读:
    Python 包的概念
    EXCEL基础篇(二)
    EXCEL基础篇(一)
    JavaScript(四)Bom
    JavaScript(三)Dom查找、设置标签属性及内容、绑定事件
    erlang并发编程(二)
    OTP&ETS
    erlang中http请求
    erlang证书加密
    erlang并发编程
  • 原文地址:https://www.cnblogs.com/andreking/p/5793026.html
Copyright © 2020-2023  润新知