磁盘管理

管理分区

  • 列出块设备
      lsblk

parted命令 高级分区操作

用法:
  parted [选项]... [设备 [命令 [参数]...]...]
  parted /dev/sdb mklabel gpt|msdos
  parted /dev/sdb print
  parted /dev/sdb mkpart primary 1 200 (默认M)
  parted /dev/sdb rm 1
  parted –l 列出分区信息

分区工具

  • gdisk /dev/sdb 类fdisk 的GPT分区工具
  • fdisk -l [-u] [device...] 查看分区
  • fdisk /dev/sdb 管理分区
  • 子命令:
      p 分区列表
      t 更改分区类型
      n 创建新分区
      d 删除分区
      v 校验分区
      u 转换单位
      w 保存并退出
      q 不保存并退出

同步分区表

  • 查看内核是否已经识别新的分区
     cat /proc/partations
  • centos6通知内核重新读取硬盘分区表
    新增分区用
     partx -a /dev/DEVICE
     kpartx -a /dev/DEVICE -f: force
    删除分区用
     partx -d --nr M-N /dev/DEVICE
  • CentOS 5,7: 使用partprobe  partprobe [/dev/DEVICE]

文件系统类型

  •  ext2(Extended file system) :适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分区
  •  ext3:是 ext2 的改进版本,其支持日志功能,能够帮助系统从非正常关机导致的异常中恢复。它通常被用作通用的文件系统
  •  ext4:是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升
  •  xfs:SGI,支持最大8EB的文件系统
  •  btrfs(Oracle), reiserfs, jfs(AIX), swap
  • 光盘:iso9660

文件系统分类

  • 根据其是否支持"journal"功能:
     日志型文件系统: ext3, ext4, xfs, ...
     非日志型文件系统: ext2, vfat
  • 文件系统的组成部分:
     内核中的模块:ext4, xfs, vfat
     用户空间的管理工具:mkfs.ext4, mkfs.xfs, mkfs.vfat

创建文件系统

  • mkfs命令:
    (1) mkfs.FS_TYPE /dev/DEVICE
     ext4
     xfs
     btrfs
     vfat
    (2) mkfs -t FS_TYPE /dev/DEVICE
     -L 'LABEL' 设定卷标

创建ext文件系统

  • mke2fs:ext系列文件系统专用管理工具
    -t {ext2|ext3|ext4} 指定文件系统类型
    -b {1024|2048|4096} 指定块大小
    -L ‘LABEL’ 设置卷标
    -j 相当于 -t ext3
     mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
    -i # 为数据空间中每多少个字节创建一个inode;不应该小于block大小
    -N # 指定分区中创建多少个inode
    -I 一个inode记录占用的磁盘空间大小,128---4096
    -m # 默认5%,为管理人员预留空间占总空间的百分比
    -O FEATURE[,...] 启用指定特性
    -O ^FEATURE 关闭指定特性

用mount命令挂载文件系统

◆ 挂载方法:mount DEVICE MOUNT_POINT
◆ mount:通过查看/etc/mtab文件显示当前已挂载的所有设备
◆ mount [-f nrsvw] [-t vfstype] [-o options] device dir
 device:指明要挂载的设备;  (1) 设备文件:例如/dev/sda5
 (2) 卷标:-L 'LABEL', 例如 -L 'MYDATA'
 (3) UUID, -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'
 (4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
 dir:挂载点
 事先存在,建议使用空目录
 进程正在使用中的设备无法被卸载

◆ 常用命令选项
 -t vsftype 指定要挂载的设备上的文件系统类型
 -r readonly,只读挂载
 -w read and write, 读写挂载
 -n 不更新/etc/mtab,mount不可见
 -a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)
 -L 'LABEL' 以卷标指定挂载设备
 -U 'UUID' 以UUID指定要挂载的设备
 -B, --bind 绑定目录到另一个目录上
 查看内核追踪到的已挂载的所有设备
  cat /proc/mounts

◆ 卸载命令

  • 查看挂载情况
     findmnt MOUNT_POINT|device
  • 查看正在访问指定文件系统的进程
     lsof MOUNT_POINT
     fuser -v MOUNT_POINT
  • 终止所有在正访问指定的文件系统的进程
     fuser -km MOUNT_POINT
  • 卸载
     umount DEVICE
     umount MOUNT_POINT

工具dd

◆ dd命令:转换并复制文件
◆ 用法:
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=# count=#
 if=file 从所命名文件读取而不是从标准输入
 of=file 写到所命名的文件而不是到标准输出
 ibs=size 一次读size个byte
 obs=size 一次写size个byte  bs=size block size, 指定块大小(既是是ibs也是obs)
 cbs=size 一次转化size个byte
 skip=blocks 从开头忽略blocks个ibs大小的块
 seek=blocks 从开头忽略blocks个obs大小的块
 count=n 复制n个bs

RAID

RAID级别

 RAID-0:条带卷,strip
 RAID-1:镜像卷,mirror
 RAID-2
 ..
 RAID-5
 RAID-6
 RAID-10
 RAID-01

逻辑卷管理器

pv管理工具

◆ 显示pv信息
 pvs:简要pv信息显示
 pvdisplay:列出详细pv信息
◆ 创建pv
 pvcreate /dev/DEVICE
◆ 删除pv
 pvremove /dev/DEVICE

vg管理工具

◆ 显示卷组
 vgs
 vgdisplay
◆ 创建卷组
 vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [物理设备路径]
◆ 管理卷组
 vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
 vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
◆ 删除卷组
 先做pvmove,再做vgremove

lv管理工具

显示逻辑卷
 lvs
 Lvdisplay
◆ 创建逻辑卷
 lvcreate -L #[mMgGtT] -n NAME VolumeGroup
 lvcreate -l 60%VG -n mylv testvg
 lvcreate -l 100%FREE -n yourlv testvg
◆ 删除逻辑卷
 lvremove /dev/VG_NAME/LV_NAME
◆ 重设文件系统大小
 fsadm [options] resize device [new_size[BKMGTEP]]
 resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
 xfs_growfs /mountpoint

创建逻辑卷步骤:

1.硬盘分区 (用“t”创建8e标识)fdisk
2.创建物理卷
 pvcreate /dev/sd{b1,c} b1:分区 c:整块硬盘
3.物理卷加入卷组,创建卷组名字  vgcreate -s 16M 卷组名字 物理卷名字(-s 16M:设置PE单位为16M)
 blkid 查看分区UID,TYPE="LVM2_member"为逻辑卷
4.将卷组分出空间:
 lvcreate -n name (-l个数 -L容量 100%FREE将所有空间都用光) 物理卷组名字
5.创建文件系统
 mkfs.xfs (dev/vg0 物理卷名/逻辑卷名)
6.挂载:
 mount /dev/vg0/mysql(逻辑卷路径) /data/mysql(挂载点)
6.5 永久挂载
 vim /etc/fstab
 写入blkid中逻辑卷的UUID /data/mysql xfs defaults 0 0
 试着在文件夹中建数据:
cd /data/mysql/ dd if=/dev/zero of=f1 bs=1M count=1024

在线扩展逻辑卷(处于挂载状态可以直接扩展)

 lvextend -l +PE个数/+100%FREE -L +容量 /dev/vg0/mysql

  • 扩展逻辑卷:
    xfs_growfs /data/mysql/(挂载点)
    扩展ext文件系统:resize2fs /dev/vg0/mysql(逻辑卷路径)
    合并成一条: lvextend -L +1G -r /dev/vg0/mysql

  • 缩减逻辑卷(必须离线缩减) xfs不能缩减
    1.取消挂载 umount 逻辑卷路径
    2.缩减文件系统:
    2.1 e2fsck -f /dev/vg0/log (缩减到1G) 2.2 resize2fs /dev/vg0/log 1G 检查文件系统完整性
    3.缩减逻辑卷:
     lvreduce -L 1G /dev/vg0/log(缩减前先给文件做备份) 4.挂载 mount
    5.df -hT (T显示type类型)

linux基础—课堂随笔07_磁盘存储和文件系统的更多相关文章

  1. linux基础—课堂随笔010_系统启动和内核管理

    系统启动和内核管理 Linux: kernel+rootfs kernel: 进程管理.内存管理.网络管理.驱动程序.文件系统.安全功能 rootfs:程序和glibc 库:函数集合, functio ...

  2. linux基础—课堂随笔08_进程(转)

    进程优先级 命令 pstree -p 显示各个子线程 ps 进程状态(process state) UNIX风格:ps -ef BSD风格:ps aux 还有用到o参数,选项显示定制的信息: pid. ...

  3. linux基础—课堂随笔05_文本三剑客之SED

    1.简介 sed是非交互式的编辑器,它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed编辑器逐行处理文件(或输入),并将结果发送到屏幕.具体过程如下 ...

  4. linux基础—课堂随笔_03 SHELL脚本编程基础

    shell脚本编程基础 条件选择:if语句 选择执行: 注意:if语句可嵌套 单分支 if(开头)判断条件:then条件为真的分支代码 fi(结尾) 双分支 if(开头)判断条件:then条件为真的分 ...

  5. linux基础—课堂随笔09_数组

    数组:(6.14 第一节) 取分区利用率,大于百分之八十则发出警报 取分区第一列 取分区使用率: 脚本: 检查脚本语法: ——end 数组切片: 1.跳过前两个取后面 2.跳过前两个取三个 生成10个 ...

  6. linux基础—课堂随笔06_软件包管理

    软件包管理 rpm 包和包管理器 包的组成:  二进制文件.库文件.配置文件.帮助文件 程序包管理器:  debian: deb文件,dpkg包管理器  redhat:rpm文件,rpm包管理器  r ...

  7. linux基础—课堂随笔04_文件查找和压缩

    文件查找和压缩 文件查找 1.locate   这个命令是对其生成的数据库进行遍历(生成数据库的命令:updatedb),这一特性决定了用locate查找文件速度很快,但是locate命令只能对文件进 ...

  8. linux基础(1)-终端&shell类型&命令&文件系统&命令帮助的获取

    终端 用于与主机交互,必然用到的设备. 物理终端 直接接入本机的显示器和键盘设备:Console. 虚拟终端 附加在物理终端之上的以软件方式虚拟实现的终端,CentOS 6 默认启动 6 个虚拟终端. ...

  9. Linux基础——硬盘分区、格式化及文件系统的管理

    1. 硬件设备与文件名的对应关系 掌握在Linux系统中,每个设备都被当初一个文件来对待. 设备 设备在Linux内的文件名 IDE硬盘 /dev/hd[a-d] SCSI硬盘 /dev/sd[a-p ...

随机推荐

  1. 用事件队列来处理pixi中的场景元素入场

    在pixi中,添加一个精灵元素,你可能需要,先将贴图load进来,然后才能添加到场景中去,所以一般会这么操作 Loader.add("tree","static/imag ...

  2. XmlEncrypt

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  3. linux系统下安装python3及其配置

    Linux下安装Python3.6和第三方库 linux一般自带python2,不要动它,使用python3运行python脚本就好,部分linux系统命令依赖目前的python2环境, 比如yum! ...

  4. fastadmin model关联模型 关联查询问题

    一对一关联 public function getGoodName(){ return $this->belongsTo('app\api\model\goods\Good','goods_go ...

  5. Flutter与Xamarin跨平台移动开发相比

    在过去十年中,移动行业经历了巨大的增长,特别是在应用程序开发方面.据Statista报告称,全球智能手机用户超过20亿,预计到2022年底这一数字将增加到50亿以上.在这些智能手机中,近100%在三个 ...

  6. hive的hiveserver2模式启动不起来,发现Hadoop一直处于安全模式

    hive的hiveserver2模式启动不起来,发现Hadoop一直处于安全模式 命令介绍 命令hadoop fs –safemode get 查看安全模式状态 命令hadoop fs –safemo ...

  7. LEN()和DATALENGTH()的区别

    原文:LEN()和DATALENGTH()的区别 版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.n ...

  8. 数位dp详解&&LG P2602 [ZJOI2010]数字计数

    数位dp,适用于解决一类求x~y之间有多少个符合要求的数或者其他. 例题 题目描述 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除 ...

  9. Thinkphp5 自定义上传文件名

    这几天在做tp5的上传文件模块,项目需求是要把文件名在上传之后修改为 用户名+原文件名的组合形式,在网上找了一会儿发现好像没有类似的文章...只好自己去研究研究了. 之前查看过看云上面的官方手册,文件 ...

  10. Python学习笔记:流程控制

    单分支: if 条件: 满足条件后执行的代码 程序举例: leiyu=28if leiyu > 22: print("You can find girl friend..." ...