linux基础(二十一)管理系统存储
管理系统存储
一、分区划分、挂载
1.分区划分
fdisk /dev/vdb
elcome 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): 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)
Command (m for help): n ##新建分区
Partition type:
p primary (0 primary, 0 extended, 4 free) ##分区类型位主分区
e extended ##分区类型位扩展分区
Select (default p): ##默认位主分区
Using default response 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
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: 0x193488c3
Device Boot Start End Blocks Id System
/dev/vdb1 2048 206847 102400 83 Linux
Command (m for help): wq ##保存推出,如果安q表示放弃更改退出
[[email protected] mnt]# partprobe ##同步分区表
cat /proc/partitions ##查看系统识别的分区信息
2.先格式化,然后挂载分区
mkfs.xfs /dev/vdb1 ##格式化
mount /dev/vdb5 /mnt ##临时挂载
vim /etc/fstab ##永久挂载
devic mountpoint ftype defaults(mountpoint) 0 0
/dev/vdb1 /mnt xfs defaults 0 0
mount -a #使/etc/fstab中记录的所有挂载策略生效
测试:
1.首先给虚拟机增加一块硬盘
2.列出可用的磁盘
[[email protected] ~]# fdisk -l
磁盘 /dev/sda:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009914a
设备 Boot Start End Blocks Id System
/dev/sda1 2048 4098047 2048000 82 Linux swap / Solaris
/dev/sda2 * 4098048 16777215 6339584 83 Linux
磁盘 /dev/sdb:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
##这块设备就是刚刚新增加的磁盘
3.划分这块设备,划分出一个500M的分区
[[email protected] ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x90082ec1 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-16777215,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-16777215,默认为 16777215):+500M
分区 1 已设置为 Linux 类型,大小设为 500 MiB
命令(输入 m 获取帮助):wq
The partition table has been altered!
Calling ioctl() to re-read partition table.
4.查看分区情况
[[email protected] ~]# fdisk -l
磁盘 /dev/sda:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009914a
设备 Boot Start End Blocks Id System
/dev/sda1 2048 4098047 2048000 82 Linux swap / Solaris
/dev/sda2 * 4098048 16777215 6339584 83 Linux
磁盘 /dev/sdb:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x90082ec1
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 1026047 512000 83 Linux
##这就是是刚刚从/dev.sdb设备划分出的500M分区
5.格式化分区
[[email protected] ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=256 agcount=4, agsize=32000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=128000, 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
6.挂载分区
1)临时挂载,重启会失效
[[email protected] ~]# mkdir /zone
[[email protected] ~]# mount /dev/sdb1 /zone/
2)永久挂载
[[email protected] /]# vim /etc/fstab
/dev/sdb1 /zone xfs defaults 0 0
[[email protected] /]# mount -a
7.重新启动虚拟机,df查看挂载情况,/zone的挂载还在
[[email protected] ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda2 6329344 3697836 2631508 59% /
devtmpfs 500528 0 500528 0% /dev
tmpfs 508996 80 508916 1% /dev/shm
tmpfs 508996 7032 501964 2% /run
tmpfs 508996 0 508996 0% /sys/fs/cgroup
/dev/sdb1 508588 25760 482828 6% /zone
二、设定分区方式为gpt
[[email protected] ~]# 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? gpt
Warning: The existing disk label on /dev/vdb will be destroyed and all data on this disk will be lost. Do you
want to continue?
Yes/No? y
(parted) quit
三、swap
1.fdisk /dev/vdb #分区
2.fdisk 中修改swap分区标识
1)如果文件系统是gpt的,14代表swap
2)如果文件系统是doc的,82代表swap
3.##n代表第n个分区
mkswap /dev/vdbn #格式化swap分区的命令
4.
swapon -a /dev/vdbn #**swap分区
5.
vim /etc/fstab #写入开机挂载配置文件,永久挂载
磁盘 挂载位置 类型 挂载参数 不检测 不备份
/dev/vdbn swap swap defaults,pri=1 0 0 ##pri代表优先级,可以不加
6.
swapoff /dev/vdbn #关闭swap分区
测试:
1.建立swap分区
[[email protected] ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):p #显示分区,查看类型
磁盘 /dev/sdb:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x90082ec1
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 1026047 512000 83 Linux
命令(输入 m 获取帮助):l #列出系统可用类型
0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris
1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 隐藏的 C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 扩展 c7 Syrinx
5 扩展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系统数据
6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 纯文本 de Dell 工具
8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt
9 AIX 可启动 4f QNX4.x 第3部分 93 Amoeba e1 DOS 访问
a OS/2 启动管理器 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad 休 eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 扩展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC
11 隐藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq 诊断 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 隐藏的 FAT16 <3 61 SpeedStor ab Darwin 启动 f2 DOS 次要
16 隐藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 隐藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自动
1b 隐藏的 W95 FAT3 70 DiskSecure 多启 bb Boot Wizard 隐 fe LANstep
1c 隐藏的 W95 FAT3 75 PC/IX be Solaris 启动 ff BBT
1e 隐藏的 W95 FAT1 80 旧 Minix
命令(输入 m 获取帮助):n #划分一个500M的新分区
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (1026048-16777215,默认为 1026048):
将使用默认值 1026048
Last 扇区, +扇区 or +size{K,M,G} (1026048-16777215,默认为 16777215):+500M
分区 2 已设置为 Linux 类型,大小设为 500 MiB
命令(输入 m 获取帮助):t #修改分区类型为swap
分区号 (1,2,默认 2):
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助)::p #查看
磁盘 /dev/sdb:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x90082ec1
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 1026047 512000 83 Linux
/dev/sdb2 1026048 2050047 512000 82 Linux swap / Solaris
命令(输入 m 获取帮助):wq
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
2.同步分区表
[[email protected] ~]# partprobe
3.格式化
[[email protected] ~]# mkswap /dev/sdb2
正在设置交换空间版本 1,大小 = 511996 KiB
无标签,UUID=c468b27c-cef1-47ca-b1c3-fd9fa8894f88
4.**新分区挂载到swap中
[[email protected] ~]# swapon -a /dev/sdb2
[[email protected] ~]# swapon -s ##查看
文件名 类型 大小 已用 权限
/dev/sda1 partition 2047996 0 -1
/dev/sdb2 partition 511996 0 -2
5.验证
[[email protected] ~]# free -m
total used free shared buffers cached
Mem: 994 544 449 6 1 241
-/+ buffers/cache: 302 691
Swap: 2499 0 2499
可见swap分区变成了2.5G,之前是2G
6.关闭swap分区
[[email protected] ~]# swapoff /dev/sdb2
[[email protected] ~]# free -m
total used free shared buffers cached
Mem: 994 553 440 6 0 247
-/+ buffers/cache: 305 688
Swap: 1999 0 1999
##swap又恢复2G了
6.永久挂载
vim /etc/fstab
/dev/sdb2 swap swap defaults 0 0
##重启之后swap又变成2.5G了
四、磁盘加密
首先删除之前创建的分区
[[email protected] ~]# umount /zone/
[[email protected] ~]# swapoff /dev/sdb2
[[email protected] ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):d
分区号 (1,2,默认 2):
分区 2 已删除
命令(输入 m 获取帮助):d
已选择分区 1
分区 1 已删除
命令(输入 m 获取帮助):wq
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[[email protected] ~]# partprobe
1.磁盘加密
1)创建分区,清楚挂载
fdisk /dev/sdb 用-n创建一个500M的新的分区
vim /etc/fstab
#/dev/sdb1 /zone xfs defaults 0 0
#/dev/sdb2 swap swap defaults,pri=1 0 0
注释或删除这两行
2)加密
[[email protected] ~]# cryptsetup luksFormat /dev/sdb1
WARNING!
========
This will overwrite data on /dev/sdb1 irrevocably.
Are you sure? (Type uppercase yes): YES #小写或简写不识别
Enter passphrase: #输入密码
Verify passphrase: #确认密码
3)打开加密的分区
[[email protected] ~]# cryptsetup open /dev/sdb1 redhat #redhat这里也可以是其他任何名字
Enter passphrase for /dev/sdb1: #输入刚才的密码
4)格式化分区为xfs格式
##/dev/mapper下代表虚拟设备
[[email protected] ~]# mkfs.xfs /dev/mapper/redhat
meta-data=/dev/mapper/redhat isize=256 agcount=4, agsize=31872 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=127488, 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
5)挂载、卸载
mount /dev/mapper/redhat /zone
umount /zone
6)关闭加密分区
cryptsetup close redhat
2.加密磁盘的永久挂载
vim /etc/crypttab
解密后设备管理文件 设备 加密字符存放文件
redhat /dev/sdb1 /root/lukspsfile
vim /root/lukspsfile 加密字符文件,在这里面写上加密用的密码
chmod 600 /root/lukspsfile 密码文件设置600权限,不让其他用户查看
cryptsetup luksAddKey /dev/sdb1 /root/lukspsfile 关联设备和密码文件
vim /etc/fstab 自动挂载
/dev/mapper/redhat /zone xfs defaults 0 0
mount -a 检测/etc/fstab自动挂载
3.加密清除
vim /etc/fstab
> /etc/crypttab
rm -fr /root/lukspsfile
umount /zone
cryptsetup close redhat
mkfs.xfs /dev/sdb1
五、磁盘阵列####
fdisk /dev/vdb 创建三个分区,分区标示为raid
mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3} 制作双磁盘一个闲置
mkfs.xfs /dev/md0 格式化
mount /dev/md0 /mnt/ 挂载
watch -n 1 cat /proc/mdstat 监控
mdadm -f /dev/md0 /dev/vdb1 失效指定硬盘
mdadm -D /dev/md0 查看raid状态
mdadm -r /dev/md0 /dev/vdb1 删除指定硬盘
mdadm -a /dev/md0 /dev/vdb1 添加指定硬盘
umount /mnt/ 取消挂载
mdadm -S /dev/md0 停止使用
fdisk /dev/vdb
删除分区
partprobe同步分区表
####5.配额####
mount -o usrquota /dev/vdb1 /pub 挂载,加上配额参数打开,默认是关闭的,加-o
quotaon -uv /dev/vdb1 启动磁盘配额在添加这个参数后,打开权限配额,打开的是mount挂载的 /dev/vdbN
edquota -u student
Disk quotas for user student (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/vdb1 102400 0 40000 1 0 0
su - student
dd if=/dev/zero of=/pub/file bs=1M count=500
dd: error writing ‘/pub/file’: Disk quota exceeded
101+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.0916726 s, 1.1 GB/s
quota
Disk quotas for user student (uid 1000):
Filesystem blocks quota limit grace files quota limit grace
/dev/vdb1 102400* 0 102400 1 0 0