Linux磁盘管理

一、存储设备(磁盘)的识别
fdisk -l        ###真实存在的设备(硬件对硬件)
cat /proc/partition    ###系统可识别的设备,有的设备识别不了(无驱动)
blkid            ###系统可使用的设备(软件对软件)
df            ###系统正在挂载的设备

df -h      ##系统正在挂载的设备,大小采用1Mb=1024Kb表示,更精确
df -H    ##系统正在挂载的设备,大小采用1Mb=1000Kb表示
二、设备挂载和卸载
1.设备名称
/dev/* d $     ### * :hd并行硬件接口 (ide)| sd 串行硬件接口(sata) |  vd虚拟硬盘(虚拟机中)
                    ### $ :  a 第一块 | b 第二块
/dev/sr0    ###光驱
/dev/mapper/*    ###虚拟设备
2.挂载设备
 挂载(可读写)-----安装“门”----"门">>目录------重复挂载会覆盖原挂载
mount 设备 挂载点
mount -o ro 设备 挂载点        ###只读挂载(先卸载)
mount -o rw 设备 挂载点        ###可读可写挂载(先卸载)
mount        ###查看挂载信息
mount -o remount,rw 设备| 挂载点    ###重新读写挂载(挂载状态下可执行)

操作:


3.卸载设备
umount 设备 | 挂载点            ##卸载/mnt/或/dev/vdb1,两条命令效果一致
解决正忙(有程序占用):
法1:
 fuser 挂载点 ===fuser -m 挂载点    ###查看占用
 fuser -v 挂载点    ###查看占用详细信息(user、pid ...)
 fuser -kvm 挂载点   ###解除占用
 umount
法2:

lsof 挂载点      ###列出占用进程详细信息

kill -9 进程pid       ###用pid结束占用进程

umount

操作:

有程序在使用此设备时,会出现设备正忙的报错

方法一:

fuser  -kvm  /mnt                   ##查看并结束挂载在/mnt/设备上的占用进程

umount  /mnt                          ##卸载挂载在/mnt/上的设备

方法二:


三、磁盘分区(系统在硬盘中)
1.分区是由磁道和扇区共同决定;
   零磁道1扇区是磁头的默认起始位置,记录信息如下:
  446byte(mbr主引导记录,告诉磁头跳到启动分区)
+ 64字节(主分区表,每个分区大小为16byte,可画4个分区)(16进制=二进制0000)
+ 2 字节(55aa:磁盘有效性标识)
= 512字节
2.磁盘分区的两种方法

1)mbr分区方式

  一块分区是16个字节(寄存器数据为16进制:一个16进制数=二进制0000);所以一块硬盘上如果是mbr的分区方式,主分区表的64byte最多可以划分4个主分区,最后一个主分区可以作为扩展分区(剩余字节的容器),再在其中划分若干个逻辑分区,使得这些逻辑分区的硬盘有效性标识保存在mbr中;

主分区+扩展分区+逻辑分区最多16个,多了的建立了无法识别使用;

mbr 分区模式下一个分区不能超过2T;

2)GTP分区方式

gpt一个分区不超过18Eb,1Eb=1000Tb;

最多可识别128个,多了的建立了无法识别使用

3)两种分区方式转化

注意:先卸载已挂载设备,否则有报错,更换不了

parted /dev/vdb                                                  ###更改分区方式
          help---->mklabel-----><tab键>------->gpt | msdos------>quit

          ------>Information:  You may need to update /etc/fstab.           ##需更新此文件
fdisk -l
           -------->Disk label type: gpt    |   dos   ###建立分区方式为gpt  |  mbr

操作:

[root@localhost ~]# parted /dev/vdb
GNU Parted 3.1
Using /dev/vdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel                                              ###更改分区方式
New disk label type?                                       ###分区类型       
aix    amiga  bsd    dvh    gpt    loop   mac    msdos  pc98   sun    
New disk label type? gpt
(parted) quit                                                             
Information: You may need to update /etc/fstab.

[root@localhost ~]# fdisk -l

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt                                             ###转化成功

3.磁盘分区步骤  

fdisk -l       ####查看设备信息
fdisk /dev/vdb

m    ##帮助

d    ##删除

p    ##显示分区信息

q    ##退出

t     ##修改分区id

n    ##新建

w    ##保存分区表信息到硬盘

注意:wq退出后可能保存分区信息失败,此时需要命令partprobe 手动同步分区表信息到硬盘

操作:

Command (m for help): n                                                     ##新建
Partition type:
   p   primary (1 primary, 0 extended, 3 free)                        ##主分区
   e   extended                                                                          ##扩展分区
Select (default p): p          ##当系统已经有三个主分区时,此处默认为扩展分区,分配大小时默认为分配所有空间给扩展分区
Partition number (2-4, default 2):                                        ##id使用默认
First sector (2099200-20971519, default 2099200):       ##分区起始块
Using default value 2099200
Last sector, +sectors or +size{K,M,G} (2099200-20971519, default 20971519): +1G     ##+100M              ## 分区大小
Partition 2 of type Linux and of size 100MiB is set

Command (m for help): p                                                     ##显示分区信息

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000281e2

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048      206847      102400   83  Linux

Command (m for help): wq
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

         ####同步分区表

       ###查看分区是否被系统识别

四、给设备安装文件系统
1.rhel各个版本使用的文件系统:

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

ext4    rhel6    最多支持1EB的文件系统和16TB文件

xfs      rhel7     最多支持18EB的文件系统和9EB文件    读取速度可达(r)7G/s    写入速度可达(w)4G/s
2.挂载新建磁盘设备到系统目录

mkfs.xfs /dev/vdb1     ##格式化磁盘/dev/vdb1,并给磁盘安装xfs文件系统
blkid                            ##列出系统中可以使用的设备id

mount  /dev/vdb1  /mnt/     ###挂载设备

注意:不能格式化/dev/vdb4,它是一个容器,否则整个硬盘将缺少更多空间使用。

操作:

[root@localhost ~]# mkfs.xfs /dev/vdb1
meta-data=/dev/vdb1              isize=256    agcount=4, agsize=6400 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=25600, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# blkid
/dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs"
/dev/vdb1: UUID="8191defd-8bc1-4a31-bd75-f132cf89063a" TYPE="xfs"
[root@localhost ~]# mount /dev/vdb1 /mnt/
[root@localhost ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vdb1          98988    5280     93708   6% /mnt

3.永久挂载磁盘到系统目录

 vim  /etc/fstab               #策略,开机自动挂载设备

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

/dev/vdb1           /mnt             xfs                 efaults             0               0  

五、swap分区管理
1. 建立swap分区
fdisk -l       ####查看设备信息
fdisk /dev/vdb1
     n              ##新建
     p              ##查看分区信息
     t               ##修改分区类型
     l               ##列出所有类型
  82 | 14       ##mbr的swap分区 | gpt的swap分区
     p
     wq
partprobe              ###设备存在,但不识别;同步分区表,让系统识别
mkswap   /dev/vdb1     ###格式化分区类型为swap文件系统格式
激活:(swap分区在使用时不需要挂载)
1)激活当前状态(一次性)  swapon  -a   设备
2)开机自动激活(永久)    vim /etc/fstab
           设备名     挂载点     设备类型    设备参数    是否备份     是否检测
swapon -s     ###查看swap分区
2.取消swap分区
 vim /etc/fstab  取消修改"dd"      ###取消挂载永久分区,当前状态swap依然在
 swapoff  /dev/vdb1            ###取消当前分区

最后在fdisk命令中删除/dev/vdb1设备或使用命令mkfs.xfs /dev/vdb1 - f 将该设备格式化成xfs文件系统分区

操作:建立swap分区再 删除

[root@localhost ~]# fdisk /dev/vdb
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n                                                         ##新建
Partition number (1-128, default 1):
First sector (34-20971486, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971486, default 20971486): +100M
Created partition 1
Command (m for help): p                                                     ###查看新分区

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt
#         Start          End    Size  Type            Name
 1         2048       206847    100M       Linux filesyste                               ###此时为普通分区

Command (m for help): t                                                                          ###转化磁盘分区类型
Selected partition 1
Partition type (type L to list all types): l                                                   ###列出所有类型

Partition type (type L to list all types): 14                                                  ###选择 Linux swap类型
Changed type of partition 'Linux filesystem' to 'Linux swap'

Command (m for help): p

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt
#         Start          End    Size  Type            Name
 1         2048       206847    100M     Linux swap                                      ###分区类型已改为swap

Command (m for help): wq
[root@localhost ~]# partprobe                                              ###同步分区表
[root@localhost ~]# mkswap  /dev/vdb1
mkswap: /dev/vdb1: warning: wiping old xfs signature.
Setting up swapspace version 1, size = 102396 KiB
no label, UUID=1d9f35f8-681f-4cad-b2ee-77e5d9bf8fed

[root@localhost ~]# swapon -a /dev/vdb1                                            ###激活当前状态swap分区
[root@localhost ~]# swapon -s                                                            ###查看swap分区
Filename                Type        Size    Used    Priority
/dev/vdb1           partition    102396    0           -1
[root@localhost ~]# vim /etc/fstab                                            ###设置开机自动激活
[root@localhost ~]# cat /etc/fstab

/dev/vdb1  swap  swap  defaults  0  0                                   ###配置文件内添加内容

[root@localhost ~]# vim /etc/fstab                                       ###取消开机自动激活
[root@localhost ~]# swapoff /dev/vdb1                              ###取消当前激活

[root@localhost ~]# mkfs.xfs /dev/vdb1 -f

六、磁盘配额(针对设备而不是针对用户的)

控制设备对磁盘的使用限额
1.设置权限

设备权限 > 目录权限(先挂载,再设置挂载目录权限。否则会覆盖)

mount  /dev/vdb1   /public
chmod 1777 /public/                                    ###所有人都可读写执行,但只有文件所有人才可以删除
2.开启
 umount   /public/
 mount  /dev/vdb1   /public    -o   usrquota           ###打开配额功能(得在卸载状态)
3.激活
quotaon   -uv    /dev/vdb1    ### -v显示过程,-u用户
4.编辑
edquota    -u    用户名                                              ##配置某个用户的额度
  设备名                   已使用大小     警告       限制     目前文件个数                  最多可建多少文件
Filesystem                   blocks         soft         hard        inodes             soft                 hard
  /dev/vdb1                  10240          0           10240          2                    0                      0 

注:hard代表配额用户所能写入的最高额度,单位是KB

5.配置开机自启动

vim  /etc/fstab      ##配置开机自动启动

------->  /dev/vdb1   /public   xfs    defaults,usrquota    0    0

6.测试
1)repquota -a                                     ###显示各用户配额信息   
2)dd if=/dev/zero of=file bs=1M count=10             ###dd 输入内容为无限0字节  输入文件名  一块大小1M 一共输入10块
  dd if=/dev/zero of=file bs=1M count=11
     dd: error writing ‘file’: Disk quota exceeded                    ## 超过额度后会报错

7.文件大小受容量大小限制
  文件个数受超级块大小限制,超级块越小,数量越多,利用率越高,但读取速度越慢(BBS论坛超级块小;门户网站超级块大)

七、磁盘加密
加密层在文件系统层之下:暴力解密后,文件系统层损坏,文件依然不会泻露。保证了安全性
加密前文件名/dev/vdb1
解密后文件名/dev/mapper/名
1.法一:命令方式磁盘加密
1)加密格式化:必须在卸载状态
cryptsetup luksFormat /dev/vdb1     ##大写YES  ;密码
                                        ##挂载,读写不了
2)解密(一次性)
cryptsetup open /dev/vdb1 名字
3)作文件系统:格式化mkfs.xfs /dev/mapper/名字

    挂载:          mount /dev/mapper/lee /mnt                           
4)加密(关锁):必须在卸载状态  umount /mnt
cryptsetup close /dev/mapper/westos

5)开锁:cryptsetup   open   /dev/vdb1   名字      ###需要密码

操作:

[root@localhost ~]# partprobe                                                     ##同步分区表
[root@localhost ~]# cryptsetup luksFormat /dev/vdb3              ##先加锁

WARNING!
========
This will overwrite data on /dev/vdb3 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:
[root@localhost ~]# cryptsetup open /dev/vdb3  lee                     ##开锁
Enter passphrase for /dev/vdb3:
[root@localhost ~]# mkfs.xfs /dev/mapper/lee                                                       ###再做文件系统
meta-data=/dev/mapper/lee        isize=256    agcount=4, agsize=6272 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=25088, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# mount /dev/mapper/lee /mnt
[root@localhost ~]# touch /mnt/file{1..5}
[root@localhost ~]# df
Filesystem      1K-blocks    Used Available Use% Mounted on
/dev/vda1        10473900 3340408   7133492  32% /
devtmpfs           469344       0    469344   0% /dev
tmpfs              484932      80    484852   1% /dev/shm
tmpfs              484932     628    484304   1% /run
tmpfs              484932       0    484932   0% /sys/fs/cgroup
/dev/vdb1           98988    5288     93700   6% /public
/dev/mapper/lee     96940    5176     91764   6% /mnt
[root@localhost ~]# umount /mnt/
[root@localhost ~]# cryptsetup close lee                                         ##关锁
[root@localhost ~]# cryptsetup open /dev/vdb3 lee                        ##开锁
Enter passphrase for /dev/vdb3:
[root@localhost ~]# mount /dev/mapper/lee /mnt

2.方法二:脚本磁盘加密

vim /mnt/disk_crypt.sh     

               
chmod +x /mnt/disk_crypt.sh
/mnt/disk_crypt.sh 名字
2. 加密磁盘开机自动挂载
1) vim /etc/crypttab                                                                  ###此文件记录加密解密过程;配置加密分区与密码文件关联,未生效
westos              /dev/vdb1        /root/westoskey
解密后名字    解密设备文件       密码位置
2) vim  /root/westoskey                                                           ### 建立密码文件;此文件记录密码
-----> 2018lee
  chmod 600 /root/westoskey                                                 ###为了安全,其他人都不可读写
3)cryptsetup luksAddKey /dev/vdb1 /root/westoskey          ###将加密分区与密码文件关联;
4) vim /etc/fstab
/dev/mapper/westos   /mnt   xfs   defaults   0   0

检测:reboot后虚拟机可起,并挂载成功
错误:若没有自动解密,只编辑永久激活文件/etc/fstab/中 /dev/mapper/westos  /mnt
            reboot后,虚拟机起不了。因为解密后的westos是一次性的,已经找不到
改错:在进系统时,按<e>
            删除r后,改为rw rd.break
            按<ctrl+z>切换到单用户
            chroot /sysroot/   进入真实的根目录
            vim /etc/fstab,取消永久激活行
            两次exit退出

错误操作及解决办法:

[root@localhost ~]# vim /etc/fstab
[root@localhost ~]# cat /etc/fstab

 . . .
/dev/mapper/lee /mnt xfs defaults  0  0
[root@localhost ~]# reboot

    /etc/fstab

 

再输入两次exit

正确操作:

[root@localhost ~]# vim /etc/crypttab
[root@localhost ~]# cat /etc/crypttab
lee /dev/vdb3  /root/leekey
[root@localhost ~]# vim /root/leekey
[root@localhost ~]# cat /root/leekey
2018lee
[root@localhost ~]# chmod 600 /root/leekey

[root@localhost ~]# cryptsetup luksAddKey /dev/vdb3 /root/leekey
Enter any passphrase:
[root@localhost ~]# vim /etc/fstab

3.磁盘加密恢复:
vim /etc/crypttab
vim /etc/fstab
cryptsetup close westos
mkfs.xfs /dev/vdb1 -f
rm -fr /root/westoskey

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值