linux磁盘管理

磁盘管理

磁盘  软盘 光盘 磁带 闪存  硬盘


接口类型
IDE    ide      /dev/hd
SATA  AHCI      /dev/sd
SAS   SCSI      /dev/sd
M.2   Nvme   pci-e x4   
移动硬盘(u盘)  /dev/sd
软盘           /dev/fd(0-7)


第一块硬盘
/dev/sda|/dev/hda  (按照英文字母排序)   sdaa

1024b ——1kb  1024kb--1mb  1024mb--1gb  1024gb ---1tb    1024 tb  ---1pb  1024pb----1

磁面:磁盘的表面
磁道:
扇区:
磁柱:


对于硬盘来讲,最小的存储单位是扇区,每一个扇区的大小512字节,每一个扇区,磁道,磁柱都是从0开始

MBR分区表磁盘

硬盘的第一个扇区包含了主引导记录(MBR)存放了初始化程序加载器,分区表,校验码

MBR
初始化程序加载器(IPL)   占用了446字节
分区表                           64字节
检验码                            2字节

分区
最早诞生的目的,就是让用户安装多个操作系统

每一条分区信息占用16个字节
    包含了起始磁柱编号
    所有磁柱的数量
    分区标识符(fat ntfs ext4 )


分区的类型
    主分区:分区信息存储在mbr的分区表当中(64字节当中)最多可分4个
    扩展分区:---------------------------的特殊的主分区 只能存储分区,不能存储数据,最多一个
    逻辑分区:存储在扩展分区最开始的扇区,每一个逻辑分区可以存储一种分区信息

        系统标识符为5(windows下扩展分区)的扩展分区 可分12个逻辑分区
        系统标识符为85(linux的扩展分区)的扩展分区 IDE磁盘可分60个逻辑分区 scsi 可分12个

主分区&扩展分区使用数字标识(1-4)
逻辑分区   5-63{默认}  (最多可以加到255)


fdisk
磁盘分区: fdisk 设备名

   *a   更改分区启动标签
   b   编辑卷标
   c   切换成跟DOS相兼容的标签
   *d   删除一个分区
   *l   查看已知的分区标识符(文件系统类型)
   m   print this menu
   *n   新建分区
   o   创建空的分区表
   *p   显示分区信息
   q   退出不保存
   s   创建空的SUN支持的分区表
   *t   修改分区类型(分区标识符)
   u   更改显示单位(默认是磁柱、扇区为单位)
   v   检查分区表
   *w   保存退出
   x   高级功能


ID 号

5 windows扩展分区
85 linux--------
7  NTFS
82 SWAP
8e LVM
df linux RAID
83 linux (ext4  ext3  ext2)

partprobe 强制内核更新分区表

fdisk 只能创建和划分MBR分区表的磁盘   如果磁盘超过2.2T,fdisk,就不灵了 (扇区是512字节)
            硬盘扇区是4k              8.8T

格式化
mkfs (make filesystem)
文件系统决定了计算机的读写的方式

块  存数据的最小单位

    块大浪费空间,读写性能好
    块小节省空间,读写性能差

  超级块 是文件系统的心脏 超级块中保存了全局文件信息,如硬盘已用空间、数据块可用空间、inode结点信息等等
  数据块 存数据

索引节点(inode节点) 记录文件的基本信息 类型 权限 链接数量 所有者、组 大小 数据块


语法: mkfs -t (指定文件系统类型) 分区设备名 
     mkfs.文件系统 分区设备名

mke2fs (格式化工具)
    -t  ext4/3/2  指定文件系统类型 默认ext4
    -b  1024/2048/4096/8192  指定块大小
    -i 数字  指定每个i节点控制的大小
    -N 数字  i节点的数量

GPT分区表(简单介绍)
第一个扇区保留给MBR兼容使用
第二个扇区(GPT分区表主表)
磁盘最后一个扇区(GPT分区表备份表)

分区表头的格式
起始字节       长度          内容
0              8字节        签名("EFI PART")
8              4字节        修订
12             4字节        分区表头的大小
16             4字节        分区表头(第0-91字节)的CRC32校验,在计算时,把这个字段作为0处理,需要计算出分区串行的CRC32校验后再计算本字段

20             4字节        保留,必须是 0
24             8字节        当前LBA(这个分区表头的位置)
32             8字节            备份LBA(另一个分区表头的位置)
40             8字节        第一个可用于分区的LBA(主分区表的最后一个LBA + 1)
48             8字节        最后一个可用于分区的LBA(备份分区表的第一个LBA ? 1)
56             16字节       硬盘GUID(在类UNIX系统中也叫UUID)
72             8字节        分区表项的起始LBA(在主分区表中是2)
80             4字节        分区表项的数量
84             4字节         一个分区表项的大小(通常是128)
88             4字节         分区串行的CRC32校验
92             *             保留,剩余的字节必须是0(对于512字节LBA的硬盘即是420个字节)


GPT分区不像MBR一样限制主分区的数量!!!!!!!

parted(GPT分区工具) 自己baidu

parted           
select /dev/sdc   选择要分区的磁盘
mklabel           新建磁盘标签
GPT               标签类型
mkpart            新建分区
ppp               分区名字
ext4              文件类型
3000              0-3000M大小
Ignore            忽略
print             查看分区

mkpart
ooo
ext4
3000
4G
Ignore
print

mkpart
iiii
ext4
4G
20G
print


rm 1               删除分区


quit               退出


mkfs -t ext4 分区设备名  格式化分区

fdisk -l 不能查看用parted分区的磁盘

用parted -l 查看


挂载

mount/umount

       -o   指定附加选项
        ro,rw  只读,读写
        sync|async  同步处理|异步处理
        atime|noatime 允许更新访问时间|不允许更新访问时间
        dev|nodev    设备文件是否被识别为设备文件
        exec|noexec   可执行文件是否可执行
        suid|nosuid   特殊权限是否生效
        user|nouser   是否允许用户挂载此设备
        auto|noauto   执行mount -a 时是否自动挂载此分区、
        remount      重新挂载
        ()默认值= rw suid dev exec auto nouser async()
    -a      /etc/fstab 中的挂载项,全部自动挂载
    -t      指定文件系统类型(ext4|3|2  xfs  redhat7的文件系统)
    --bind  把一个目录挂载道另一个目录

umount  设备名|挂载点
    -a  all卸载所有 /etc/fstab
    -r  如果卸载失败,将权限改为ro

fuser -vm 挂载设备名|挂载点  查询那个进程在占用挂载目录(文件系统)
fuser -km -----------------   直接干死占用文件系统(挂载目录)的进程
        

fsck  检查文件系统保证数据完整性

语法:fsck 选项 设备
        A  根据/etc/fstab设置检查所有文件系统
        a  自动修复
        y  代替回答yes
        f  强制检查
###########  fsck 不能针对已经挂载的文件系统执行,会造成数据混乱!!!!##################


/etc/fstab 用来存放文件系统的静态信息的文件, 当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录

设备(设备名|UUID) 挂载点 文件系统类型  挂载参数  dump(能否被kdump备份)pass (能否被fsck检查)

dmup : 0 表示忽略   1表示备份

pass :0表示不检查    1表示检查 优先级最高一般根目录使用       2表示检查  优先级低


扩充swp


文件类型  swap文件
生成swap文件            dd if=/dev/zero of=/tmp/swapfile bs=1M count=2048
格式化成swap文件系统    mkswap  /tmp/swapfile
开启swap功能            swapon /tmp/swapfile
设置开机加载            vim /etc/fstab
/tmp/swapfile    swap    swap    defaults    0 0
mount -a


分区类型  swap分区
划分swap分区            fdisk 设备名    卷标改为82
格式化成swap文件系统    mkswap 设备名
开启swap功能            swapon 设备名
设置开机加载            vim /etc/fstab
/dev/sdb1        swap    swap    defaults    0 0
mount -a


swapon
a    根据fstab文件设置开启所有swap功能
s    查看swap信息
p    指定swap优先级
swapoff 设备名  关闭swap分区
    

磁盘配额
      可以限制用户和群组的磁盘空间用量

    注意事项:
        只能针对文件系统使用,不能针对目录。
        内核必须支持
        使用过程中,要生成相关记录文件
            命名方式:
                aquota.user
                aquota.group
                quota.user
                quota.group
        只针对普通用户
            空间用量      block
            I节点   (限制文件数量)
        软限制:当用量达到软限制的数值时会显示警告
        硬限制:当用量达到硬限制的数值时会直接限制使用
        宽限时间:默认7天  当用户的用量介于软限制和硬限制之间时开始计时,计时结束后用户的用量没有低于软限制的值,则用户的使用空间直接锁定

    开启配额的方式
    mount -o usrquota,grpquota  设备名  挂载点


生成相关记录文件
quotacheck
     a 根据/etc/mtab的设置检查所有支持quota的分区
    u  生成用户的配额文件
    g  生成组的配额文件
    v  详细信息
    f  强制
    M  以读写的形式扫描 与-f配合使用

linux系统
学习阶段:你要关闭 iptables  selinux   NetworkManager

工作阶段: 只要关闭selinux    NetworkManager(最小化安装,压根就没有)

启用配额功能
quotaon 文件系统
    f  关闭
关闭配额
quotaoff 文件系统

编辑配额
edquota
语法:edquota -u|-g  username|groupname
       -u  编辑用户配额
    -g  编辑组配额

quota 查看配额报告
    -u 用户
    -g 组
    -v 详细信息
    -s 使用1024进制  默认的时1000进制


repquota -a 所有
    -v 详细信息

警告信:    
使用当前用户
warnquota
查看邮件
mail

警告信内容配置文件:
路径:/etc/warnquota.conf

不修改配置文件,直接修改配额
setquota
u    用户
g    组

示例:
setquota -u username 软限制 硬限制 设备名(挂载点)

你可能感兴趣的:(Linux运维-初级)