Linux 第15天: (08月29日) 练习和作业

 

 

 

 

 

管理磁盘配额

 

 

fdisk
partx -a /dev/sda

mount /dev/sda6 /home
df
cd /home
mv * /home

vim /etc/fstab                               启用磁盘配额挂载选项

:r!blkid /dev/sda6  /home  ext4  default  0 0
:r!blkid /dev/sda6  /home  ext4  usrquota,grpquota  0 0

mount -o remount /dev/sda6

cd

getenforce \
setenforce 0
getenforce

quotacheck -c -u -g /home                    创建磁盘配额数据库

cd /home
file aquota.*


quotaon -p /home                             查看磁盘配额
quotaon /home                                启用磁盘配额


edquato user1                                编辑磁盘配额

quota user1                                  查看磁盘配额
repquota /home                               查看磁盘配额
edquota -p user1 user2                       复制磁盘配额
repquota /home                               查看磁盘配额


setquota user2 1000 2000 0 0 /home           非交互命令磁盘配额

quota user1                                  查看磁盘配额
repquota /home                               查看磁盘配额

 

 

 

 

 

管理磁盘raid

 


fdisk t fd (raid格式)
partx -a /dev/sdd
lsblk


mdadm -C /dev/md0 -a yes -l 5 -n 4 -x 1 /dev/sd{b,c,d,e,f}1 建立raid5

mdadm -G /dev/md0 -n 6 -a /dev/sdd4          增加一个硬盘

mdadm -D /dev/md0
cat /proc/mdstat                             观察状态


mkfs.ext4 /dev/md0
vim /etc/fstab
:r! UUID="..." /mnt/raid  ext4  defaults  0 0


mdadm -Ds /dev/md0  > /etc/mdadm.conf        生成配置文件


mdadm -S /dev/md0                            停止raid
mdadm -A /dev/md0                            启动raid


mdadm /dev/md0 -f /dev/sdf1                  模拟损坏
mdadm /dev/md0 -r /dev/sdf1                  删除成员
mdadm /dev/md0 -a /dev/sdf1                  增加成员


umount /mnt/raid/
mdadm -S /dev/md0
rm -f /etc/mdadm.conf
fdisk d                                      逐一删除分区
partx -d --nr 7 /dev/sda
blkid
vim /etc/fstab                               删除raid的UUID
mdadm --zero-superblock /dev/sdd             彻底清除顽固信息

 

 

=========================================

 

 

dd if=/dev/sdb of=/dev/sdc bs=1 count=512
dd if=/dev/sdb of=/dev/sdd bs=1 count=512
dd if=/dev/sdb of=/dev/sde bs=1 count=512
dd if=/dev/sdb of=/dev/sdf bs=1 count=512


partx -a /dev/sdc
partx -a /dev/sdd
partx -a /dev/sde
partx -a /dev/sdf


mdadm -C /dev/md0 -a yes -l 5 -n 3 -x l /dev/sd{c,d,e,f}
mdadm -D /dev/md0
cat /proc/mdstat
watch -n 1 cat /proc/mdstat


mdadm -Ds /dev/md0 > /etc/mdadm.conf
mkfs.ext4 /dev/md0

 

vim /etc/fstab
/dev/md0  /mnt/raid  ext4  defaults  0 0

mkdir /mnt/raid
mount -a

df -h

 

mdadm /dev/md0 -f /dev/sdc
cat /proc/mdstat

 

mdadm /dev/md0 -r /dev/sdc
mdadm /dev/md0 -a /dev/sdc

 

 

 

 


管理物理卷pv, 卷组vg, 逻辑卷lv

 


pvs
pvdisplay

 

pvcreate /dev/sde                            建立物理卷
pvcreate /dev/sdf                            建立物理卷

 

pvs
pvdisplay

 

vgcreate vg0 /dev/sde /dev/sdf               建立卷组

 

pvs
pvdisplay
vgs
vgdisplay

 

lvcreate -n lv0 -L 20G vg0                   建立逻辑卷

 

pvs
pvdisplay
vgs
vgdisplay
lvs
lvdisplay

 

ll /dev/vg0/lg0
ll /dev/mapper/vg0-lv0

 

blkid     UUID                               正确的UUID
lvdisplay UUID                               错误的UUID

 

vim /etc/fstab                               挂载逻辑卷
:r!blkid /dev/vg0/lv0 UUID  /mnt/lv0  ext4  defaults  0 0

 

mkdir /mnt/lv0
mount -a
df -h

 

lvextend -l +100%FREE /dev/vg0/lv0           扩展逻辑卷
lvextend -L +10G /dev/vg0/lv0                扩展逻辑卷
df -h
lvs
resize2fs /dev/vg0/lv0                       格式化逻辑卷
df -h
lvs

 

lsblk
pvcreate /dev/sdd                            建立物理卷
pvs
vgextend vg0 /dev/sdd                        扩展卷组
vgs
lvextend -L +20G /dev/vg0/lv0                扩展逻辑卷
resize2fs /dev/vg0/lv0                       格式化逻辑卷

 

 

 

 

pvcreate /dev/sde
pvs


vgcreate vg0 -s 16M /dev/sde


pvs
vgdisplay


lvcreate -n mylv -L 10G vg0


lvs
lvdisplay

 

 

pvcreate /dev/sdc
vgextend vg0 /dev/sdc                        扩展卷组

 

mkfs.xfs /dev/vg0/mylv
blkid


mkdir /mnt/mylv
mount /dev/vg0/mylv /mnt/mylv
df -h


lvextend -L +5G /dev/vg0/mylv                扩展

逻辑卷

 

resize2fs                                    ext格式
xfs_growfs /mnt/mylv/                        xfs格式

 

lvs

 

vgs
lvextend -r -l +100%FREE /dev/vg0/mylv       扩展逻辑卷

df -h
lvs
vgsdisplay

 

umount /mnt/lv0/
e2fsck -f /dev/vg0/lv0                       检查文件系统
resize2fs /dev/vg0/lv0 10G                   缩减文件系统
lvreduce -L 10G /dev/vg0/lv0                 缩
减逻辑卷
mount -a

 

pvmove /dev/sdb                              搬移物理卷空间
vgreduce vg0 /dev/sdb                        卷组里删物理卷
pvremove /dev/sdb                            删除物理卷

 

lvextend -r -L +2G /dev/vg0/lv0              扩展逻辑卷


lvcreate -n lv0-snapshot -s -p r -L 10G /dev/vg0/lv0
lvs
lvdisplay


mkdir /mnt/snapshot
mount /dev/vg0/lv0-snapshot /mnt/snapshot

 
umount /mnt/lv0/
umount /mnt/snapshot
lvremove /dev/vg0/lv0
vgremove vg0
fdisk d
vim /etc/fstab
rm -rf snapshot


 

 

 

 

 

 

练习
1:创建一个可用空间为1G的RAID1设备,要求其chunk大小为128k,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录

 

 

lsblk


fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd
partx -a /dev/sdb
partx -a /dev/sdc
partx -a /dev/sdd


lsblk


mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 -c 128k /dev/sd{b,c,d}
mdadm -D /dev/md0
cat /proc/mdstat


mkfs.ext4 /dev/md0
vim /etc/fstab
:r! UUID="......" /backup  ext4  defaults  0 0


mdadm -Ds /dev/md0 > /etc/mdadm.conf
mdadm -A  /dev/md0


 

 

 

 

2:创建由三块硬盘组成的可用空间为2G的RAID5设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录 

 

 

lsblk


fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde
partx -a /dev/sdb
partx -a /dev/sdc
partx -a /dev/sdd
partx -a /dev/sde


lsblk


mdadm -C /dev/md0 -a yes -l 5 -n 4 -x 1 -c 256k /dev/sd{b,c,d}
mdadm -D /dev/md0
cat /proc/mdstat


mkfs.ext4 /dev/md0
vim /etc/fstab
:r! UUID="......" /mydata  ext4  defaults  0 0


mdadm -Ds /dev/md0 > /etc/mdadm.conf
mdadm -A  /dev/md0


 

 

 


练习
1、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
2、新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录
3、扩展testlv至7G,要求archlinux用户的文件不能丢失
4、收缩testlv至3G,要求archlinux用户的文件不能丢失
5、对testlv创建快照,并尝试基于快照备份数据,验正快照的功能

 

 
pvdisplay

pvcreate /dev/sdb
pvcreate /dev/sdc

pvdispaly

vgcreate testvg /dev/sdb /dev/sdc

vgdisplay

lvcreate -n testlv -L 5G testvg

lvdisplay

vim /etc/fstab
:r!blkid /dev/testlv  UUID  /users  ext4  defaults  0 0

 


useradd archlinux -d /users/archlinux

su - archlinux

copy /etc/pam.d /home/archlinux/

 


lvextend -L 7G /dev/testvg/testlv

resize2fs /dev/testvg/testlv

lvdisplay

 


umount /users/testlv

e2fsck -f /dev/testvg/testlv

resize2fs /dev/testvg/testlv 3G

lvreduce -L 3G /dev/testvg/testlv

mount -a

 


lvcreant -n testlv-snapshot -s -p r -L 3G /dev/testvg/testlv

mkdir  mnt/snapshot

mount /dev/testvg/testlv /mnt/snapshot

 

 

 

 


实验ext4和btrfs互转

 


btrfs balance start -dconvert=single /mydata
btrfs balance start -mconvert=raid1 /mydata
btrfs device delete /dev/sdd /mydata
fdisk /dev/sdd分区
mkfs.ext4 /dev/sdd1
mount /dev/sdd1 /mnt
cp /etc/fstab /mnt
umount /mnt/
fsck -f /dev/sdd1
btrfs-convert /dev/sdd1 转化ext4为btrfs
btrfs fikesystem show
mount /dev/sdd1 /mnt

 

 

 

 

 

实验ext4和btrfs互转

 

 


btrfs转化ext4文件系统
umount /mnt
btrfs-convert -r /dev/sdd1
blkid /dev/sdd1
再转换成btrfs
btrfs-convert /dev/sdd1