关于linux下的系统存储管理
https://blog.csdn.net/aaaaaab_/article/details/80159871
//查看当前系统磁盘使用空间
df -h
//查看当前目录文件占用空间大小
du -sh *
原文地址 : https://blog.csdn.net/qq_31648761/article/details/79526322
1、存储的基础知识
知识点: 基本分区、逻辑卷LVM、EXT3/4文件系统、磁盘限额、RAID
△磁头(Heads):每张磁片的正反两面各有一个磁头,一个磁头对应一张磁片的一个面。因此,用第几磁 头就可以表示数据在哪个磁面。
△柱面(Cylinder):所有磁片中半径相同的同心磁道构成“柱面",意思是这一系列的磁道垂直叠在一起,就形成一个柱面的形状。简单地理解,柱面数=磁道数。
△扇区(Sector):将磁道划分为若干个小的区段,就是扇区。虽然很小,但实际是一个扇子的形状,故称为扇区。每个扇区的容量为512字节
CHS(以sector方式存储)的问题:每个sector 512byte,它前边还需要有8byte存储该sector的信息,所以它的浪费就是8/512,当磁盘的总容量很大时,这个浪费就可想而知了;且内存中每个page frame为4k,它与磁盘交互时,每个memory page frame需要处理8次都可以存储到磁盘上。所以后续使用block为存储单位,即4K (LBA)。
一、两种分区方式(针对分区表)
存储大小 分区软件 分区表
2TB以下的硬盘 fdisk/parted MSDOS(MBR) /GPT
2TB以上的硬盘 parted GPT
MSDOS(MBR)分区的限制:
只支持4个主分区,总分区数不能超过15个
只支持2TB以下的硬盘
GPT的限制:
没有限制
注意:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!
========================================================
小知识: kernel对不同接口的硬盘命名
OS IDE(并口) SATA(串口) SCSI USB
RHEL5 /dev/hda /dev/sda /dev/sda /dev/sda
RHEL6 /dev/sda /dev/sda /dev/sda /dev/sda
HP服务器
/dev/cciss/c0d0
/dev/cciss/c0d0p1 //c0第一个控制器, d0第一块磁盘, p1分区1
/dev/cciss/c0d0p2 //c0第一个控制器, d0第一块磁盘, p2分区2
========================================================
2、基本分区管理
存储管理
分区(基本分区)、格式化、挂载
========================================================
内容摘要:
分区工具fdisk msdos
分区工具parted msdos 或 GPT
一、分区工具fdisk MBR(msdos)
1. 查看新设备是否发现
# ll /dev/sd* //查看Kernel识别到的设备
# fdisk -cul //u以扇区的方式查看
2. 分区
# fdisk -cu /dev/sdb //分区
Command (m for help): m
Command action
d delete a partition
m print this menu
n add a new partition
p print the partition table
q quit without saving changes
t change a partition's system id
w write table to disk and exit
# ll /dev/sd*
# partx -a /dev/sdb //让内核刷新分区表
# ll /dev/sd*
3. 格式化(创建文件系统)
Windwos: FAT,FAT32,NTFS
Linux: VFAT,Ext2,Ext3,Ext4,GFS,GFS2
[root@yangs ~]# mkfs.ext4 /dev/sdb1 //100M的分区
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0) //块大小1024B (1K)
Fragment size=1024 (log=0)
25688 inodes, 102400 blocks
9765 blocks (5.00%) reserved for the super user
[root@yangs ~]# mkfs.ext4 /dev/sdb2 //1G的分区
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2) //块大小4096B (4K)
Fragment size=4096 (log=2)
65536 inodes, 262144 blocks
12207 blocks (5.00%) reserved for the super user
4. 挂载
建立挂载点
# mkdir /mnt/disk1 //建立挂载点,挂载点建议是空目录
# mkdir /mnt/disk2
挂载
==手动: 临时
[root@yangs ~]# mount -o ro -t ext4 /dev/sdb1 /mnt/disk1
[root@yangs ~]# mount /dev/sdb2 /mnt/disk2
[root@yangs ~]# mount
/dev/sdb1 on /mnt/disk1 type ext4 (ro)
/dev/sdb2 on /mnt/disk2 type ext4 (rw)
[root@yangs ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sdb1 97M 5.6M 87M 7% /mnt/disk1
/dev/sdb2 1008M 34M 924M 4% /mnt/disk2
==开机自动挂载 /etc/fstab
[root@yangs ~]# umount /dev/sdb1
[root@yangs ~]# blkid
/dev/sdb1: UUID="653a949d-ebf5-4543-9f67-4b71cbe5cf2b" TYPE="ext4"
/dev/sdb2: UUID="7ca49b1d-5359-413f-83aa-ed51c7421877" TYPE="ext4"
[root@yangs ~]# vim /etc/fstab
UUID="653a949d-ebf5-4543-9f67-4b71cbe5cf2b" /mnt/disk1 ext4 defaults 0 0
UUID="7ca49b1d-5359-413f-83aa-ed51c7421877" /mnt/disk2 ext4 defaults 0 0
[root@yangs ~]# mount -a //读取/etc/fstab并挂载
二、分区工具parted msdos 或 GPT
命令行
parted bigfile mklabel gpt
parted bigfile mkpart primary 1 1TB
parted bigfile mkpart primary 1TB 2TB
parted bigfile print
交互式
[root@yangs ~]# parted /dev/sdc
GNU Parted 2.1
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help
(parted) mklabel gpt
(parted) print
(parted) mkpart primary 1M 1T
(parted) mkpart primary 1T 3T
(parted) mkpart primary 3T 3.1T
(parted) print
(parted) mkpart primary 3100GB 5T
(parted) mkpart primary 5000GB 6T
(parted) mkpart primary 6T 7T
(parted) print
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 1000GB 1000GB primary
2 1000GB 3000GB 2000GB primary
3 3000GB 3100GB 100GB primary
4 3100GB 5000GB 1900GB primary
5 5000GB 6000GB 1000GB primary
6 6000GB 7000GB 1000GB primary
(parted) rm 6
(parted) print
(parted) quit
Information: You may need to update /etc/fstab.
kpartx -a bigfile (删除时使用kpartx -d bigfile,注如何创建的就需要如何删除)
/dev/mapper/loop0
/dev/mapper/loop0{p1,p2}
mkfs.ext4 /dev/mapper/loop0p2
mount /dev/mapper/loopop2 /opt
[root@yangs ~]# partx -a /dev/sdc
[root@yangs ~]# ll /dev/sdc*
brw-rw---- 1 root disk 8, 32 Jan 9 16:07 /dev/sdc
brw-rw---- 1 root disk 8, 33 Jan 9 16:06 /dev/sdc1
brw-rw---- 1 root disk 8, 34 Jan 9 16:06 /dev/sdc2
brw-rw---- 1 root disk 8, 35 Jan 9 16:06 /dev/sdc3
brw-rw---- 1 root disk 8, 36 Jan 9 16:06 /dev/sdc4
brw-rw---- 1 root disk 8, 37 Jan 9 16:06 /dev/sdc5
3、逻辑卷管理LVM
逻辑卷LVM
1. 在线(on-line)扩容,离线(off-line)缩小
2. 快照snapshot
参考文档:
========================================================
创建 扫描 显示详细 显示 扩展 缩小 删除 更改 ...
pvcreate pvscan pvdisplay pvs pvremove
vgcreate vgscan vgdisplay vgs vgextend vgreduce vgremove vgchange
lvcreate lvscan lvdisplay lvs lvextend lvreduce lvremove lvchange
========================================================
一、创建逻辑卷
1. 创建物理卷PV(整个硬盘,不需要分区)
[root@yangs ~]# pvcreate /dev/sdc
2. 创建卷组VG
[root@yangs ~]# vgcreate vg02 /dev/sdc
3. 创建逻辑卷LV
[root@yangs ~]# lvcreate -L 400M -n lv02 vg02
[root@yangs ~]# lvcreate -l 200 -n lv03 vg02
[root@yangs ~]# lvscan
ACTIVE '/dev/vg02/lv02' [400.00 MB] inherit
4. 创建文件系统并挂载
[root@yangs ~]# mkfs.ext4 /dev/vg02/lv02
[root@yangs ~]# vim /etc/fstab
/dev/vg02/lv02 /mnt/lv02 ext4 defaults 0 0
[root@yangs ~]# mkdir /mnt/lv02
[root@yangs ~]# mount -a
[root@yangs ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/vg02-lv02
396672 10544 365648 3% /mnt/lv02
二、扩展逻辑卷
第一种情况:lv所在的卷组还有足够用于扩展的空间
[root@yangs ~]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv02 vg02 -wi-ao 400.00M
lv03 vg02 -wi-ao 800.00M
[root@yangs ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg02 1 2 0 wz--n- 100.00G 98.82G
[root@yangs ~]# lvextend -L 1G /dev/vg02/lv02 //扩展逻辑卷
[root@yangs ~]# lvscan
ACTIVE '/dev/vg02/lv02' [1.00 GB] inherit
ACTIVE '/dev/vg02/lv03' [800.00 MB] inherit
[root@yangs ~]# resize2fs /dev/vg02/lv02 //扩文件系统
[root@yangs ~]# df -h
第二种情况:lv所在的卷组没有足够的空间
[root@yangs ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg01 1 4 0 wz--n- 9.97G 0
vg02 1 2 0 wz--n- 100.00G 98.21G
[root@yangs ~]# pvcreate /dev/sdd //建立PV
[root@yangs ~]# vgextend vg02 /dev/sdd //扩展卷组
[root@yangs ~]# lvextend -L 100T /dev/vg02/lv02 //扩展逻辑卷
[root@yangs ~]# resize2fs /dev/vg02/lv02 //扩文件系统
========================================================
扩展知识:
PV也可以是一个分区:
[root@yangs ~]# fdisk -cul /dev/sdd
[root@yangs ~]# partx -a /dev/sdd
[root@yangs ~]# pvcreate /dev/sdd7
[root@yangs ~]# vgextend vg02 /dev/sdd7
[root@yangs ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg01 1 4 0 wz--n- 9.97G 0
vg02 2 2 0 wz--n- 101.82G 100.04G
PE:创建VG时,指定PE的size(默认为4M)
[root@yangs ~]# pvcreate /dev/sdc
[root@yangs ~]# vgcreate -s 128M datastorage /dev/sdc
[root@yangs ~]# vgdisplay datastorage
PE Size 128.00 MB
Total PE 799
Alloc PE / Size 0 / 0
Free PE / Size 799 / 99.88 GB
[root@yangs ~]# lvcreate -l 799 -n database datastorage
[root@yangs ~]# mkfs.ext4 /dev/datastorage/database
[root@yangs ~]# mkdir /mnt/lv
[root@yangs ~]# vim /etc/fstab
/dev/datastorage/database /mnt/lv ext3 defaults 0 0
[root@yangs ~]# mount -a
[root@yangs ~]# df
删除LV,VG:
1. 停止应用程序对该相应文件系统的访问
2. 卸载文件系统,包括/etc/fstab
3. lvremove
4. vgremove
5. pvremove
激活VG/LV:
[root@yangs ~]# lvchange -an /dev/vg01/lv01
[root@yangs ~]# lvscan
inactive '/dev/vg01/lv01' [128.00 MiB] inherit
ACTIVE '/dev/vg01/lv02' [128.00 MiB] inherit
ACTIVE '/dev/vg01/lv03' [128.00 MiB] inherit
[root@yangs ~]# vgchange -an vg01
0 logical volume(s) in volume group "vg01" now active
[root@yangs ~]# lvscan
inactive '/dev/vg01/lv01' [128.00 MiB] inherit
inactive '/dev/vg01/lv02' [128.00 MiB] inherit
inactive '/dev/vg01/lv03' [128.00 MiB] inherit
[root@yangs ~]# vgchange -ay vg01
[root@yangs ~]# lvscan
ACTIVE '/dev/vg01/lv01' [128.00 MiB] inherit
ACTIVE '/dev/vg01/lv02' [128.00 MiB] inherit
ACTIVE '/dev/vg01/lv03' [128.00 MiB] inherit
缩小逻辑卷: off-line
1. 停止应用
2. 备份数据
3. 卸载文件系统
4. 检查文件系统e2fsck
5. 缩小文件系统
6. 缩小逻辑卷
[root@yangs ~]# umount /mnt/lv04/
[root@yangs ~]# e2fsck -f /dev/vg01/lv04
[root@yangs ~]# resize2fs /dev/vg01/lv04 1000M
[root@yangs ~]# lvreduce /dev/vg01/lv04 -L 1000M
[root@yangs ~]# mount -a
========================================================
三、逻辑卷快照snapshot
逻辑卷做完快照后,对原卷的任何操作都不影响快照卷
作用:
1. 利用快照实现一致性备份
实现快照
[root@yangs ~]# lvscan
ACTIVE '/dev/vg01/lv06' [20.00 GiB] inherit
[root@yangs ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
lv06 vg01 -wi-ao--- 20.00g
[root@yangs ~]# df -ThP /mnt/lv06
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg01-lv06 ext4 20G 287M 19G 2% /mnt/lv06
[root@yangs ~]# lvcreate -L 50M -s -n lv06-snap/dev/vg01/lv06
[root@yangs ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
lv06 vg01 owi-aos-- 20.00g
lv06-snap vg01 swi-a-s-- 52.00m lv06 0.02
[root@yangs ~]# mkdir /mnt/lv06-snap
[root@yangs ~]# mount /dev/vg01/lv06-snap /mnt/lv06-snap
[root@yangs ~]# ls /mnt/lv06
etc1 etc2 etc3 lost+found
[root@sxl1 ~]# ls /mnt/lv06-snap/
etc1 etc2 etc3 lost+found
[root@yangs ~]# rm -rf /mnt/lv06/etc1
[root@sxl1 ~]# ls /mnt/lv06
etc2 etc3 lost+found
[root@sxl1 ~]# ls /mnt/lv06-snap/
etc1 etc2 etc3 lost+found
快照的自动增长:
[root@yangs ~]# vim /etc/lvm/lvm.conf
snapshot_autoextend_threshold = 70
snapshot_autoextend_percent = 50
[root@yangs ~]# /etc/init.d/lvm2-monitor start
[root@yangs ~]# chkconfig lvm2-monitor on
===========================================
扩展:
PE(physical extent):物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe大小。
LE(logical extent):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。
卷组描述区域:卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中逻辑卷、逻辑卷中物理区域的分配等所有信息,它是在使用pvcreate建立物理卷时建立的。
4、交换分区swap
增加交换分区
作用: ‘提升‘ 内存的容量
========================================================
一、查看现有的交换分区
[root@yangs ~]# free -m
total used free shared buffers cached
Mem: 1010 874 135 0 51 560
-/+ buffers/cache: 262 747
Swap: 1023 0 1023
[root@yangs ~]# swapon -s
Filename Type Size Used Priority
/dev/mapper/vg01-lv_swap partition 1048568 0 -1
二、增加交换分区
方法一: 使用分区或逻辑卷创建
1. 建立分区或LVM
[root@yangs ~]# fdisk -cu /dev/sda
[root@yangs ~]# partx -a /dev/sda
[root@yangs ~]# fdisk -cul /dev/sda
/dev/sda7 27423862 28423862 500000+ 82 Linux swap / Solaris
2. 初始化交换分区
[root@yangs ~]# mkswap /dev/sda7
3. 激活
[root@yangs ~]# vim /etc/fstab
/dev/sda7 swap swap defaults 0 0
[root@yangs ~]# swapon -a //激活所有的交换分区
[root@yangs ~]# swapon -s
Filename Type Size Used Priority
/dev/mapper/vg01-lv_swap partition 1048568 0 -1
/dev/sda7 partition 499992 0 -2
方法二:使用文件创建
[root@yangs ~]# dd if=/dev/zero of=/swap1.img bs=1M count=512
[root@yangs ~]# mkswap /swap1.img
Setting up swapspace version 1, size = 536866 kB
[root@yangs ~]# vim /etc/fstab
/swap1.img swap swap defaults 0 0
[root@yangs ~]# swapon -a
[root@yangs ~]# swapon -s
Filename Type Size Used Priority
/dev/mapper/vg01-lv_swap partition 1048568 0 -1
/dev/sda7 partition 499992 0 -2
/swap1.img file 524280 0 -3
========================================================
打开两个终端进行挂载实验:A:
[root@foundation21 ~]# df 查看系统正在使用的设备/dev/sdb1 15100688 8722224 6378464 58% /run/media/kiosk/Ѧ 会出来U盘标识[root@foundation21 ~]# umount /dev/sdb1 卸载[root@foundation21 ~]# mount /dev/sdb1 /mnt/ 挂载到/mnt/下,打开/mnt会看到U盘文件[root@foundation21 ~]# cd /mnt/ 占用后台,然后用另外一个shell来结束进程[root@foundation21 mnt]# fdisk -l 查看分区信息 Device Boot Start End Blocks Id System/dev/sdb1 * 63 30217823 15108880+ c W95 FAT32 (LBA) U盘12345678
B:
[root@foundation21 ~]# umount /mnt/ 在挂载目录中没办法直接卸载umount: /mnt: target is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) 两种查看方式[root@foundation21 ~]# fuser -vm /dev/sdb1 查看占用后台的PID USER PID ACCESS COMMAND/dev/sdb1: root kernel mount /mnt root 14537 ..c.. bash[root@foundation21 ~]# fuser -kvm /dev/sdb1 杀死后台 USER PID ACCESS COMMAND/dev/sdb1: root kernel mount /mnt root 14537 ..c.. bash[root@foundation21 ~]# umount /mnt/卸载成功lsof查看占用后台的PID就可以结合kill -9强制杀死1234567891011121314
mount -o添加参数进行挂载[root@foundation21 ~]# mount -o ro /dev/sdb1 /mnt/ 添加参数表示只读挂载[root@foundation21 ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/sda3 307974224 29625448 278348776 10% /devtmpfs 1868044 0 1868044 0% /devtmpfs 1881152 188 1880964 1% /dev/shmtmpfs 1881152 9036 1872116 1% /runtmpfs 1881152 0 1881152 0% /sys/fs/cgroup/dev/sda1 505580 149472 356108 30% /boot/dev/loop0 3654720 3654720 0 100% /var/www/html/source7.0/dev/loop1 3947824 3947824 0 100% /var/www/html/source7.2tmpfs 376232 36 376196 1% /run/user/1000tmpfs 376232 0 376232 0% /run/user/0/dev/sdb1 15100688 8722224 6378464 58% /mnt[root@foundation21 ~]# touch /mnt/file1touch: cannot touch ‘/mnt/file1’: Read-only file system用mount查看为ro不能建立文件只读[root@foundation21 ~]# umount /dev/sdb1[root@foundation21 ~]# mount -o rw /dev/sdb1 /mnt/ 可写挂载用mount查看为rw可以建立文件可写[root@foundation21 ~]# touch /mnt/file1123456789101112131415161718192021
fdisk命令的使用:[root@localhost ~]# fdisk /dev/vdb打开分区列表Command (m for help): n 创建分区Partition type: 创建分区类型 p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p): p 主分区Partition number (1-4, default 1): 1 指定主分区idFirst sector (2048-20971519, default 2048): 分区起始块位置,用默认Using default value 2048Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +100M 分配100M内存,分区结束位置,用+大小的方式指定Partition 1 of type Linux and of size 100 MiB is set
Command (m for help): p 查看分区 Device Boot Start End Blocks Id System/dev/vdb1 2048 206847 102400 83 Linux/dev/vdb2 206848 411647 102400 83 Linux/dev/vdb3 411648 616447 102400 83 Linux/dev/vdb4 616448 20971519 10177536 5 Extended/dev/vdb5 618496 823295 102400 83 Linux
Command (m for help): wq 保存分区策略并退出fdisk界面[root@localhost ~]# partprobe 手动同步分区信息[root@localhost ~]# cat /proc/partitions 查看设备是否被系统识别major minor #blocks name
253 0 10485760 vda 253 1 10484142 vda1 253 16 10485760 vdb 253 17 102400 vdb1 253 18 102400 vdb2 253 19 102400 vdb3 253 20 1 vdb4 253 21 102400 vdb5123456789101112131415161718192021222324252627282930313233fdisk的帮助命令:[root@localhost ~]# fdisk /dev/vdbCommand (m for help): m 获得帮助Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition 删除分区 g create a new empty GPT partition table G create an IRIX (SGI) partition table l list known partition types m print this menu n add a new partition 新建分区 o create a new empty DOS partition table p print the partition table 显示分区信息 q quit without saving changes退出 s create a new empty Sun disklabel t change a partition's system id 修改分区id u change display/entry units v verify the partition table w write table to disk and exit将当前操作写入硬盘分区表 x extra functionality (experts only)123456789101112131415161718192021演示创建拓展分区:
同步查看分区列表:
文件系统:mkfs.xfs /dev/vdb1 格式化设备,在设备上安装文件系统xfsblkid 查看可用设备,可以看到被格式化好的 /dev/vdb1[root@localhost ~]# mount /dev/vdb5 /mnt/ 无法挂载mount: /dev/vdb5 is write-protected, mounting read-onlymount: unknown filesystem type '(null)'[root@localhost ~]# mkfs.xfs /dev/vdb5 格式化设备meta-data=/dev/vdb5 isize=256 agcount=4, agsize=6400 blks = sectsz=512 attr=2, projid32bit=1 = crc=0data = bsize=4096 blocks=25600, imaxpct=25 = sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=0log =internal log bsize=4096 blocks=853, version=2 = sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0[root@localhost ~]# blkid 查看可用设备/dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs" /dev/vdb5: UUID="c26f6c71-59b7-42e3-aab9-295d369ceb30" TYPE="xfs" [root@localhost ~]# mkfs.xfs /dev/vdb1 格式化vdb1meta-data=/dev/vdb1 isize=256 agcount=4, agsize=6400 blks = sectsz=512 attr=2, projid32bit=1 = crc=0data = bsize=4096 blocks=25600, imaxpct=25 = sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=0log =internal log bsize=4096 blocks=853, version=2 = sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0[root@localhost ~]# blkid 查看可用设备/dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs" /dev/vdb5: UUID="c26f6c71-59b7-42e3-aab9-295d369ceb30" TYPE="xfs" /dev/vdb1: UUID="b6e4f9cf-1e3e-437f-ae4e-fefb9fad45a5" TYPE="xfs" [root@localhost ~]# mount /dev/vdb5 /mnt/ 挂载成功[root@localhost ~]# df 查看时挂载成功Filesystem 1K-blocks Used Available Use% Mounted on/dev/vda1 10473900 3764108 6709792 36% /devtmpfs 469344 0 469344 0% /devtmpfs 484932 84 484848 1% /dev/shmtmpfs 484932 12820 472112 3% /runtmpfs 484932 0 484932 0% /sys/fs/cgroup/dev/vdb5 98988 5280 93708 6% /mnt
123456789101112131415161718192021222324252627282930313233343536373839404142格式化vdb1:
解决挂载问题,格式化之后可以挂载。
MBR分区和GPT分区:MBR分区的意思是“主引导记录”,它有自己的启动器,也就是启动代码,一旦启动代码被破坏,系统就没法启动,只有通过修复才能启动系统。最大支持2TB容量,在容量方面存在着极大的瓶颈,那么GPT在今后的发展就会越来越占优势。GPT意为GUID分区表,这个标准没有MBR的那些限制。磁盘驱动器容量可以大得多,大到操作系统和文件系统都没法支持。它同时还支持几乎无限个分区数量,限制只在于操作系统,Windows支持最多128个GPT分区。1234GPT分区方式:解决一个分区不能超过2tb。[root@localhost ~]# fdisk /dev/vdb 删除分区
Command (m for help): dPartition number (1-5, default 5): 1Partition 1 is deleted不挨个演示删除分区,命令格式都是相同的。[root@localhost ~]# umount /mnt/ 解除挂载,不然会有报错[root@localhost ~]# parted /dev/vdb 设置分区方式New disk label type? gpt [root@localhost ~]# fdisk -l 出来gpt说明更改分区方式成功 Disk label type: gpt# Start End Size Type Name[root@localhost ~]# fdisk /dev/vdb 创建两个分区Command (m for help): pDisk label type: gpt 已经变为gpt分区
# Start End Size Type Name 1 2048 206847 100M Linux filesyste 2 206848 411647 100M Linux filesyste
Command (m for help): wq[root@localhost ~]# partprobe[root@localhost ~]# cat /proc/partitionsmajor minor #blocks name
253 0 10485760 vda 253 1 10484142 vda1 253 16 10485760 vdb 253 17 102400 vdb1 253 18 102400 vdb2
1234567891011121314151617181920212223242526272829303132更改分区类型为gpt类型。
同步查看:
gpt分区中可以建立1-128个分区。
变更分区:将gpt分区变更为mbr分区:[root@localhost ~]# parted /dev/vdbNew disk label type? msdos [root@localhost ~]# fdisk -l Disk label type: dos 变成dos表示变更成功Disk identifier: 0x000ee51e Device Boot Start End Blocks Id System123456变更分区:
永久挂载:[root@localhost ~]# df 查看挂载Filesystem 1K-blocks Used Available Use% Mounted on/dev/vda1 10473900 3764228 6709672 36% /devtmpfs 469344 0 469344 0% /devtmpfs 484932 84 484848 1% /dev/shmtmpfs 484932 12772 472160 3% /runtmpfs 484932 0 484932 0% /sys/fs/cgroup[root@localhost ~]# vim /etc/fstab 编辑文件/dev/vdb1 /mnt xfs文件类型 defaults(挂载参数) 0(是否备份) 0(是否检测) [root@localhost ~]# mount -a 重新读入[root@localhost ~]# fdisk /dev/vdb 分区必须存在
Device Boot Start End Blocks Id System/dev/vdb1 2048 206847 102400 83 Linux/dev/vdb2 206848 411647 102400 83 Linux[root@localhost ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/vda1 10473900 3764256 6709644 36% /devtmpfs 469344 0 469344 0% /devtmpfs 484932 84 484848 1% /dev/shmtmpfs 484932 12788 472144 3% /runtmpfs 484932 0 484932 0% /sys/fs/cgroup/dev/vdb1 98988 5280 93708 6% /mnt1234567891011121314151617181920212223写入文件内容:首先需要注意的是文件里面的/dev/vdb1分区需要我们一开始划分好。分区存在的情况可以永久挂载
swap分区的设置Swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。123[root@localhost ~]# swapon -s 重新读入[root@localhost ~]# fdisk /dev/vdb 划分分区Command (m for help): t 修改为swap分区 Partition number (1-5, default 5): 2Hex code (type L to list all codes): 82 这里的82就是类型,不知道的可以按两下Tab键会出来所有类型,在其中找到swap对应的分区即可。Command (m for help): wq[root@localhost ~]# partprobe 同步[root@localhost ~]# mkswap /dev/vdb2 格式化[root@localhost ~]# swapon -a /dev/vdb2 重新读入[root@localhost ~]# swapon -s 查看FilenameTypeSizeUsedPriority/dev/vdb2 partition1023960-1[root@localhost ~]# vim /etc/fstab 永久更改swap[root@localhost ~]# swapon -a[root@localhost ~]# fdisk -l Device Boot Start End Blocks Id System/dev/vdb1 2048 206847 102400 83 Linux/dev/vdb2 206848 411647 102400 82 Linux swap / Solaris 已经修改好/dev/vdb3 411648 616447 102400 83 Linux/dev/vdb4 616448 20971519 10177536 5 Extended/dev/vdb5 618496 823295 102400 83 Linux/dev/vdb2 swap swap defaults 0 0[root@localhost ~]# vim /etc/fstab 删除永久挂载,恢复环境[root@localhost ~]# swapoff /dev/vdb2[root@localhost ~]# fdisk /dev/vdb Command (m for help): d 删除swap分区Partition number (1-5, default 5): 2Command (m for help): wq[root@localhost ~]# partprobe 同步[root@localhost ~]# cat /proc/partitions major minor #blocks name
253 0 10485760 vda 253 1 10484142 vda1 253 16 10485760 vdb 253 17 102400 vdb1 253 19 102400 vdb3 253 20 1 vdb4 253 21 102400 vdb5123456789101112131415161718192021222324252627282930313233343536373839vim /etc/fstab永久挂载的文件内容:第一个swap表示系统不需要挂载。第二个swap表示系统配置类型。
同步格式化查看是否更改成功。
删除swap分区同步进行查看。
磁盘的加密保护:首先用fdisk /dev/vdb命令划分一个1000M的vdb1分区进行实验操作。
[root@localhost ~]# partprobe 同步[root@localhost ~]# cryptsetup luksFormat /dev/vdb1 设置加密Are you sure? (Type uppercase yes): YES 必须输入大写,Enter passphrase: 密码为2018westos[root@localhost ~]# mount /dev/vdb1 /mnt/ 挂载mount: unknown filesystem type 'crypto_LUKS' LUKS被加密[root@localhost ~]# ls /dev/mapper/control[root@localhost ~]# cryptsetup open /dev/vdb1 westos 生成解密形态Enter passphrase for /dev/vdb1: 要求输入密码。[root@localhost ~]# ls /dev/mapper/ 解密形态保存到westoscontrol westos[root@localhost ~]# mkfs.xfs /dev/mapper/westos 格式化[root@localhost ~]# mount /dev/mapper/westos /mnt/ 用解密形态挂载成功[root@localhost ~]# touch /mnt/file{1..10} 建立文件成功[root@localhost ~]# ls /mnt/file1 file10 file2 file3 file4 file5 file6 file7 file8 file9[root@localhost ~]# umount /mnt/ 解除挂载[root@localhost ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/vda1 10473900 3764284 6709616 36% /devtmpfs 469344 0 469344 0% /devtmpfs 484932 84 484848 1% /dev/shmtmpfs 484932 12808 472124 3% /runtmpfs 484932 0 484932 0% /sys/fs/cgroup[root@localhost ~]# ls /mnt/[root@localhost ~]# cryptsetup close westos 关闭解密形态[root@localhost ~]# ls /dev/mapper/control[root@localhost ~]# mount /dev/mapper/westos /mnt/ 挂载不上mount: special device /dev/mapper/westos does not exist[root@localhost ~]# mount /dev/vdb1 /mnt/ 挂载不成功mount: unknown filesystem type 'crypto_LUKS'[root@localhost ~]# cryptsetup open /dev/vdb1 westos 打开保存解密到westosEnter passphrase for /dev/vdb1: [root@localhost ~]# mount /dev/vdb1 /mnt/ 用原来文件无法挂载mount: unknown filesystem type 'crypto_LUKS'[root@localhost ~]# mount /dev/mapper/westos /mnt/ 用形态挂载成功[root@localhost ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/vda1 10473900 3764284 6709616 36% /devtmpfs 469344 0 469344 0% /devtmpfs 484932 84 484848 1% /dev/shmtmpfs 484932 12808 472124 3% /runtmpfs 484932 0 484932 0% /sys/fs/cgroup/dev/mapper/westos 1018540 32928 985612 4% /mnt 挂载成功[root@localhost ~]# ls /mnt/ 文件可以查看file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950生成加密,直接挂载不上,所以我们需要解密到一个文件,名字自取。
格式化之后就可以正常挂载,还可以建立文件。
重复操作,不进行打开加密是无法挂载的
开机自动挂载[root@localhost ~]# vim /root/diskpass 随便建立一个密码文件放入你自己的密码[root@localhost ~]# cat /root/diskpass2018westos[root@localhost ~]# chmod 600 /root/diskpass 赋予权限[root@localhost ~]# cryptsetup luksAddKey /dev/vdb1 /root/diskpass A,K大写,添加加密Enter any passphrase: 2018westos[root@localhost ~]# vim /etc/crypttab 编辑文件使其自动读入密码[root@localhost ~]# cat /etc/crypttab westos /dev/vdb1 /root/diskpass[root@localhost ~]# vim /etc/fstab 将解密形态挂载[root@localhost ~]# cat /etc/fstab 只演示添加行。/dev/mapper/westos /mnt xfs defaults 0 0[root@localhost ~]# reboot 重启生效[root@localhost ~]# df 开机自动挂载Filesystem 1K-blocks Used Available Use% Mounted on/dev/vda1 10473900 3763632 6710268 36% /devtmpfs 469344 0 469344 0% /devtmpfs 484932 80 484852 1% /dev/shmtmpfs 484932 12760 472172 3% /runtmpfs 484932 0 484932 0% /sys/fs/cgroup/dev/mapper/westos 1018540 32928 985612 4% /mnt[root@localhost ~]# cat /var/log/boot.log 查看开机启动日志[ OK ] Found device /dev/mapper/westos. 自动读取密码的日志 Mounting /mnt...[ OK ] Mounted /mnt.1234567891011121314151617181920212223242526编辑加密文件使得开机自动挂载:
重启用df查看挂载显示已经挂载成功。
查找登陆日志挂载成功:
将开机自动挂载解除,还有关闭luks加密[root@localhost ~]# vim /etc/fstab 删除编辑内容[root@localhost ~]# vim /etc/crypttab 删除编辑内容[root@localhost ~]# rm -fr /root/diskpass 删除密码文件[root@localhost ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/vda1 10473900 3763764 6710136 36% /devtmpfs 469344 0 469344 0% /devtmpfs 484932 80 484852 1% /dev/shmtmpfs 484932 12760 472172 3% /runtmpfs 484932 0 484932 0% /sys/fs/cgroup/dev/mapper/westos 1018540 32928 985612 4% /mnt[root@localhost ~]# umount /mnt/ 解除挂载[root@localhost ~]# cryptsetup close westos 关闭luks加密[root@localhost ~]# mkfs.xfs /dev/vdb1 格式化mkfs.xfs: /dev/vdb1 appears to contain an existing filesystem (crypto_LUKS).mkfs.xfs: Use the -f option to force overwrite.[root@localhost ~]# mkfs.xfs /dev/vdb1 -f 根据提示强制格式化1234567891011121314151617
[root@foundation21 ~]# df 查看系统正在使用的设备
/dev/sdb1 15100688 8722224 6378464 58% /run/media/kiosk/Ѧ 会出来U盘标识
[root@foundation21 ~]# umount /dev/sdb1 卸载
[root@foundation21 ~]# mount /dev/sdb1 /mnt/ 挂载到/mnt/下,打开/mnt会看到U盘文件
[root@foundation21 ~]# cd /mnt/ 占用后台,然后用另外一个shell来结束进程
[root@foundation21 mnt]# fdisk -l 查看分区信息
Device Boot Start End Blocks Id System
/dev/sdb1 * 63 30217823 15108880+ c W95 FAT32 (LBA) U盘
B:
[root@foundation21 ~]# umount /mnt/ 在挂载目录中没办法直接卸载
umount: /mnt: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1)) 两种查看方式
[root@foundation21 ~]# fuser -vm /dev/sdb1 查看占用后台的PID
USER PID ACCESS COMMAND
/dev/sdb1: root kernel mount /mnt
root 14537 ..c.. bash
[root@foundation21 ~]# fuser -kvm /dev/sdb1 杀死后台
USER PID ACCESS COMMAND
/dev/sdb1: root kernel mount /mnt
root 14537 ..c.. bash
[root@foundation21 ~]# umount /mnt/卸载成功
lsof查看占用后台的PID就可以结合kill -9强制杀死
mount -o添加参数进行挂载
[root@foundation21 ~]# mount -o ro /dev/sdb1 /mnt/ 添加参数表示只读挂载
[root@foundation21 ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 307974224 29625448 278348776 10% /
devtmpfs 1868044 0 1868044 0% /dev
tmpfs 1881152 188 1880964 1% /dev/shm
tmpfs 1881152 9036 1872116 1% /run
tmpfs 1881152 0 1881152 0% /sys/fs/cgroup
/dev/sda1 505580 149472 356108 30% /boot
/dev/loop0 3654720 3654720 0 100% /var/www/html/source7.0
/dev/loop1 3947824 3947824 0 100% /var/www/html/source7.2
tmpfs 376232 36 376196 1% /run/user/1000
tmpfs 376232 0 376232 0% /run/user/0
/dev/sdb1 15100688 8722224 6378464 58% /mnt
[root@foundation21 ~]# touch /mnt/file1
touch: cannot touch ‘/mnt/file1’: Read-only file system
用mount查看为ro不能建立文件只读
[root@foundation21 ~]# umount /dev/sdb1
[root@foundation21 ~]# mount -o rw /dev/sdb1 /mnt/ 可写挂载
用mount查看为rw可以建立文件可写
[root@foundation21 ~]# touch /mnt/file1
fdisk命令的使用:
[root@localhost ~]# fdisk /dev/vdb打开分区列表
Command (m for help): n 创建分区
Partition type: 创建分区类型
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p 主分区
Partition number (1-4, default 1): 1 指定主分区id
First sector (2048-20971519, default 2048): 分区起始块位置,用默认
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +100M 分配100M内存,分区结束位置,用+大小的方式指定
Partition 1 of type Linux and of size 100 MiB is set
Command (m for help): p 查看分区
Device Boot Start End Blocks Id System
/dev/vdb1 2048 206847 102400 83 Linux
/dev/vdb2 206848 411647 102400 83 Linux
/dev/vdb3 411648 616447 102400 83 Linux
/dev/vdb4 616448 20971519 10177536 5 Extended
/dev/vdb5 618496 823295 102400 83 Linux
Command (m for help): wq 保存分区策略并退出fdisk界面
[root@localhost ~]# partprobe 手动同步分区信息
[root@localhost ~]# cat /proc/partitions 查看设备是否被系统识别
major minor #blocks name
253 0 10485760 vda
253 1 10484142 vda1
253 16 10485760 vdb
253 17 102400 vdb1
253 18 102400 vdb2
253 19 102400 vdb3
fdisk的帮助命令:
[root@localhost ~]# fdisk /dev/vdb
Command (m for help): m 获得帮助
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition 删除分区
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition 新建分区
o create a new empty DOS partition table
p print the partition table 显示分区信息
q quit without saving changes退出
s create a new empty Sun disklabel
t change a partition's system id 修改分区id
u change display/entry units
v verify the partition table
w write table to disk and exit将当前操作写入硬盘分区表
x extra functionality (experts only)
演示创建拓展分区:
同步查看分区列表:
文件系统:
mkfs.xfs /dev/vdb1 格式化设备,在设备上安装文件系统xfs
blkid 查看可用设备,可以看到被格式化好的 /dev/vdb1
[root@localhost ~]# mount /dev/vdb5 /mnt/ 无法挂载
mount: /dev/vdb5 is write-protected, mounting read-only
mount: unknown filesystem type '(null)'
[root@localhost ~]# mkfs.xfs /dev/vdb5 格式化设备
meta-data=/dev/vdb5 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/vdb5: UUID="c26f6c71-59b7-42e3-aab9-295d369ceb30" TYPE="xfs"
[root@localhost ~]# mkfs.xfs /dev/vdb1 格式化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/vdb5: UUID="c26f6c71-59b7-42e3-aab9-295d369ceb30" TYPE="xfs"
/dev/vdb1: UUID="b6e4f9cf-1e3e-437f-ae4e-fefb9fad45a5" TYPE="xfs"
[root@localhost ~]# mount /dev/vdb5 /mnt/ 挂载成功
[root@localhost ~]# df 查看时挂载成功
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3764108 6709792 36% /
devtmpfs 469344 0 469344 0% /dev
tmpfs 484932 84 484848 1% /dev/shm
tmpfs 484932 12820 472112 3% /run
tmpfs 484932 0 484932 0% /sys/fs/cgroup
/dev/vdb5 98988 5280 93708 6% /mnt
格式化vdb1:
解决挂载问题,格式化之后可以挂载。
MBR分区和GPT分区:
MBR分区的意思是“主引导记录”,它有自己的启动器,也就是启动代码,一旦启动代码被破坏,系统就没法启动,只有通过
修复才能启动系统。最大支持2TB容量,在容量方面存在着极大的瓶颈,那么GPT在今后的发展就会越来越占优势。
GPT意为GUID分区表,这个标准没有MBR的那些限制。磁盘驱动器容量可以大得多,大到操作系统和文件系统都没法支持。
它同时还支持几乎无限个分区数量,限制只在于操作系统,Windows支持最多128个GPT分区。
1
2
3
4
GPT分区方式:解决一个分区不能超过2tb。
[root@localhost ~]# fdisk /dev/vdb 删除分区
Command (m for help): d
Partition number (1-5, default 5): 1
Partition 1 is deleted
不挨个演示删除分区,命令格式都是相同的。
[root@localhost ~]# umount /mnt/ 解除挂载,不然会有报错
[root@localhost ~]# parted /dev/vdb 设置分区方式
New disk label type? gpt
[root@localhost ~]# fdisk -l 出来gpt说明更改分区方式成功
Disk label type: gpt
# Start End Size Type Name
[root@localhost ~]# fdisk /dev/vdb 创建两个分区
Command (m for help): p
Disk label type: gpt 已经变为gpt分区
# Start End Size Type Name
1 2048 206847 100M Linux filesyste
2 206848 411647 100M Linux filesyste
Command (m for help): wq
[root@localhost ~]# partprobe
[root@localhost ~]# cat /proc/partitions
major minor #blocks name
253 0 10485760 vda
253 1 10484142 vda1
253 16 10485760 vdb
更改分区类型为gpt类型。
同步查看:
gpt分区中可以建立1-128个分区。
变更分区:将gpt分区变更为mbr分区:
[root@localhost ~]# parted /dev/vdb
New disk label type? msdos
[root@localhost ~]# fdisk -l
Disk label type: dos 变成dos表示变更成功
Disk identifier: 0x000ee51e
Device Boot Start End Blocks Id System
变更分区:
永久挂载:
[root@localhost ~]# df 查看挂载
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3764228 6709672 36% /
devtmpfs 469344 0 469344 0% /dev
tmpfs 484932 84 484848 1% /dev/shm
tmpfs 484932 12772 472160 3% /run
tmpfs 484932 0 484932 0% /sys/fs/cgroup
[root@localhost ~]# vim /etc/fstab 编辑文件
/dev/vdb1 /mnt xfs文件类型 defaults(挂载参数) 0(是否备份) 0(是否检测)
[root@localhost ~]# mount -a 重新读入
[root@localhost ~]# fdisk /dev/vdb 分区必须存在
Device Boot Start End Blocks Id System
/dev/vdb1 2048 206847 102400 83 Linux
/dev/vdb2 206848 411647 102400 83 Linux
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3764256 6709644 36% /
devtmpfs 469344 0 469344 0% /dev
tmpfs 484932 84 484848 1% /dev/shm
tmpfs 484932 12788 472144 3% /run
tmpfs 484932 0 484932 0% /sys/fs/cgroup
/dev/vdb1 98988 5280 93708 6% /mnt
写入文件内容:首先需要注意的是文件里面的/dev/vdb1分区需要我们一开始划分好。
分区存在的情况可以永久挂载
swap分区的设置
Swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放
的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,
再从Swap分区中恢复保存的数据到内存中。
1
2
3
[root@localhost ~]# swapon -s 重新读入
[root@localhost ~]# fdisk /dev/vdb 划分分区
Command (m for help): t 修改为swap分区
Partition number (1-5, default 5): 2
Hex code (type L to list all codes): 82 这里的82就是类型,不知道的可以按两下Tab键会出来所有类型,在其中找到swap对应的分区即可。
Command (m for help): wq
[root@localhost ~]# partprobe 同步
[root@localhost ~]# mkswap /dev/vdb2 格式化
[root@localhost ~]# swapon -a /dev/vdb2 重新读入
[root@localhost ~]# swapon -s 查看
Filename Type Size Used Priority
/dev/vdb2 partition 102396 0 -1
[root@localhost ~]# vim /etc/fstab 永久更改swap
[root@localhost ~]# swapon -a
[root@localhost ~]# fdisk -l
Device Boot Start End Blocks Id System
/dev/vdb1 2048 206847 102400 83 Linux
/dev/vdb2 206848 411647 102400 82 Linux swap / Solaris 已经修改好
/dev/vdb3 411648 616447 102400 83 Linux
/dev/vdb4 616448 20971519 10177536 5 Extended
/dev/vdb5 618496 823295 102400 83 Linux
/dev/vdb2 swap swap defaults 0 0
[root@localhost ~]# vim /etc/fstab 删除永久挂载,恢复环境
[root@localhost ~]# swapoff /dev/vdb2
[root@localhost ~]# fdisk /dev/vdb
Command (m for help): d 删除swap分区
Partition number (1-5, default 5): 2
Command (m for help): wq
[root@localhost ~]# partprobe 同步
[root@localhost ~]# cat /proc/partitions
major minor #blocks name
253 0 10485760 vda
253 1 10484142 vda1
253 16 10485760 vdb
vim /etc/fstab永久挂载的文件内容:第一个swap表示系统不需要挂载。第二个swap表示系统配置类型。
同步格式化查看是否更改成功。
删除swap分区同步进行查看。
磁盘的加密保护:
首先用fdisk /dev/vdb命令划分一个1000M的vdb1分区进行实验操作。
[root@localhost ~]# partprobe 同步
[root@localhost ~]# cryptsetup luksFormat /dev/vdb1 设置加密
Are you sure? (Type uppercase yes): YES 必须输入大写,
Enter passphrase: 密码为2018westos
[root@localhost ~]# mount /dev/vdb1 /mnt/ 挂载
mount: unknown filesystem type 'crypto_LUKS' LUKS被加密
[root@localhost ~]# ls /dev/mapper/
control
[root@localhost ~]# cryptsetup open /dev/vdb1 westos 生成解密形态
Enter passphrase for /dev/vdb1: 要求输入密码。
[root@localhost ~]# ls /dev/mapper/ 解密形态保存到westos
control westos
[root@localhost ~]# mkfs.xfs /dev/mapper/westos 格式化
[root@localhost ~]# mount /dev/mapper/westos /mnt/ 用解密形态挂载成功
[root@localhost ~]# touch /mnt/file{1..10} 建立文件成功
[root@localhost ~]# ls /mnt/
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
[root@localhost ~]# umount /mnt/ 解除挂载
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3764284 6709616 36% /
devtmpfs 469344 0 469344 0% /dev
tmpfs 484932 84 484848 1% /dev/shm
tmpfs 484932 12808 472124 3% /run
tmpfs 484932 0 484932 0% /sys/fs/cgroup
[root@localhost ~]# ls /mnt/
[root@localhost ~]# cryptsetup close westos 关闭解密形态
[root@localhost ~]# ls /dev/mapper/
control
[root@localhost ~]# mount /dev/mapper/westos /mnt/ 挂载不上
mount: special device /dev/mapper/westos does not exist
[root@localhost ~]# mount /dev/vdb1 /mnt/ 挂载不成功
mount: unknown filesystem type 'crypto_LUKS'
[root@localhost ~]# cryptsetup open /dev/vdb1 westos 打开保存解密到
westos
Enter passphrase for /dev/vdb1:
[root@localhost ~]# mount /dev/vdb1 /mnt/ 用原来文件无法挂载
mount: unknown filesystem type 'crypto_LUKS'
[root@localhost ~]# mount /dev/mapper/westos /mnt/ 用形态挂载成功
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3764284 6709616 36% /
devtmpfs 469344 0 469344 0% /dev
tmpfs 484932 84 484848 1% /dev/shm
tmpfs 484932 12808 472124 3% /run
tmpfs 484932 0 484932 0% /sys/fs/cgroup
/dev/mapper/westos 1018540 32928 985612 4% /mnt 挂载成功
[root@localhost ~]# ls /mnt/ 文件可以查看
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
1
生成加密,直接挂载不上,所以我们需要解密到一个文件,名字自取。
格式化之后就可以正常挂载,还可以建立文件。
重复操作,不进行打开加密是无法挂载的
开机自动挂载
[root@localhost ~]# vim /root/diskpass 随便建立一个密码文件放入你自己的密码
[root@localhost ~]# cat /root/diskpass
2018westos
[root@localhost ~]# chmod 600 /root/diskpass 赋予权限
[root@localhost ~]# cryptsetup luksAddKey /dev/vdb1 /root/diskpass A,K大写,添加加密
Enter any passphrase: 2018westos
[root@localhost ~]# vim /etc/crypttab 编辑文件使其自动读入密码
[root@localhost ~]# cat /etc/crypttab
westos /dev/vdb1 /root/diskpass
[root@localhost ~]# vim /etc/fstab 将解密形态挂载
[root@localhost ~]# cat /etc/fstab
只演示添加行。
/dev/mapper/westos /mnt xfs defaults 0 0
[root@localhost ~]# reboot 重启生效
[root@localhost ~]# df 开机自动挂载
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3763632 6710268 36% /
devtmpfs 469344 0 469344 0% /dev
tmpfs 484932 80 484852 1% /dev/shm
tmpfs 484932 12760 472172 3% /run
tmpfs 484932 0 484932 0% /sys/fs/cgroup
/dev/mapper/westos 1018540 32928 985612 4% /mnt
[root@localhost ~]# cat /var/log/boot.log 查看开机启动日志
[ OK ] Found device /dev/mapper/westos. 自动读取密码的日志
Mounting /mnt...
[ OK ] Mounted /mnt.
编辑加密文件使得开机自动挂载:
重启用df查看挂载显示已经挂载成功。
查找登陆日志挂载成功:
将开机自动挂载解除,还有关闭luks加密
[root@localhost ~]# vim /etc/fstab 删除编辑内容
[root@localhost ~]# vim /etc/crypttab 删除编辑内容
[root@localhost ~]# rm -fr /root/diskpass 删除密码文件
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3763764 6710136 36% /
devtmpfs 469344 0 469344 0% /dev
tmpfs 484932 80 484852 1% /dev/shm
tmpfs 484932 12760 472172 3% /run
tmpfs 484932 0 484932 0% /sys/fs/cgroup
/dev/mapper/westos 1018540 32928 985612 4% /mnt
[root@localhost ~]# umount /mnt/ 解除挂载
[root@localhost ~]# cryptsetup close westos 关闭luks加密
[root@localhost ~]# mkfs.xfs /dev/vdb1 格式化
mkfs.xfs: /dev/vdb1 appears to contain an existing filesystem (crypto_LUKS).
mkfs.xfs: Use the -f option to force overwrite.
[root@localhost ~]# mkfs.xfs /dev/vdb1 -f 根据提示强制格式化
关于linux下的系统存储管理的更多相关文章
- Linux下获得系统时间的C语言实现
Linux下获得系统时间的C语言的实现方法 #include<time.h> //C语言的头文件#include<stdio.h> //C语言的I/O int main() ...
- Linux下修改系统编码的操作记录
Linux系统安装后,发现中文显示乱码.因为系统编码为en_US.UTF-8,应改为支持中文的编码(即zh_CN.UTF-8)操作记录如下:1)检查linux的系统编码检查linux的系统编码,确定系 ...
- linux 下查看系统内存使用情况的方法
在Windows系统中查看内存的使用情况很简单,想必大家都已经耳熟能详了,那么在linux系统如何查看内存使用情况呢?下面和大家分享在Linux 下查看内存使用情况的free命令: [root@scs ...
- linux下清理系统垃圾
可以使用以下命令清理系统垃圾sudo apt-get autoclean 清理旧版本的软件缓存sudo apt-get clean 清理所有软件缓存sudo apt-get autoremove 删除 ...
- linux下查看系统属性
inux下查看系统属性1.查看cpu信息查看所有cpu信息:cat /proc/cpuinfo查看cpu类型: grep "model name" /proc/cpuinfo2.查 ...
- Linux下CenOS系统 安装MariaDB
1.首先去MariaDB官网下载安装包,首页是:https://mariadb.org/ 2.放在linux下的新建目录下:/root/mariadb 然后解压缩,命令为:tar -xzvf mari ...
- 在Linux下判断系统当前是否开启了超线程
#lscpu Thread(s) per core: 2Core(s) per socket: 6Socket(s): 2 -------------------------------------- ...
- 在 Linux 下判断系统当前是否开启了超线程
转自: http://www.cnblogs.com/wjoyxt/p/4804293.html #lscpu Thread(s) per core: 2 Core(s) per socket: 6 ...
- Linux下修改系统时区
使用 /etc/localtime 文件修改时区 先查看一下当前的时区,下面这个例子中使用 UTC 即世界统一标准时区.假设你可能需要改为美国西部标准时间,即太平洋时间. # date Thu Aug ...
随机推荐
- SQLSEVER刚建表时主键自增
alter table 表名 drop column ID alter table 表名 add ID int identity(1,1)
- Luogu P1445[Violet]樱花/P4167 [Violet]樱花
Luogu P1445[Violet]樱花/P4167 [Violet]樱花 真·双倍经验 化简原式: $$\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}$$ $$\frac ...
- String decryption with de4dot
Introduction de4dot is a wonderful tool for deobfuscating known and unknown .NET protections. Dealin ...
- 《ABCD组》实验十一 团队作业7:团队项目设计完善&编码
<ABCD组>实验十一 团队作业7:团队项目设计完善&编码 项目 内容 这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在 ...
- seastar笔记
1.seastar::A.then([]{B});C:的核心思想是说我们开始了A之后就开始B,开始B之后就开始C,而不需要等A做完了再做B,B做完再做C 2.通常的return是一个需要执行的函数,例 ...
- numpy 参考:https://mp.weixin.qq.com/s?__biz=MzU1MjYzNjQwOQ==&mid=2247486010&idx=1&sn=e42e6706e0e285ecbfdbbd76fb4ff352&chksm=fbfe50accc89d9ba56a3167c519638f1327a5c5bf12ed59dd8c6de9b2c25baeec1f1f8ad5fb7&
a=np.array([,,,]) b=np.arange() print(a,b) [ ] [ ] 对应相乘 c2=a*b [ 0 2 6 12] 对应相乘再求和 c3=a.dot( ...
- 推荐python入门书籍(爬虫方面)
学爬虫,需要理论与实践相结合,Python生态中的爬虫库多如牛毛,urllib.urllib2.requests.beautifulsoup.scrapy.pyspider都是爬虫相关的库,但是如果没 ...
- socket发送、接收信息----UDP
# 导入套接字包 import socket def welcome(): print("------欢迎进入UDP聊天器--------") print("1.发送信息 ...
- python - Flask 基础 - 蓝图( Blueprint )(2)
""" 蓝图:为开发者提供的目录结构 - 使用: 1. 根目录创建一个跟项目名一样的文件 - 创建后第一步,在这个文件夹中添加一个 __init__.py 的配置文件 - ...
- 题解[51nod1555] 布丁怪
题解[51nod1555] 布丁怪 题面 解析 本文参考这位dalao的题解 首先有一个巧妙的转换, 开一个数组记录每个横坐标的纵坐标, 简单来说就是对于点(x,y),令a[x]=y. 于是问题就变成 ...