原创文章,作者:何必呢,如若转载,请注明出处:http://www.178linux.com/85360
硬盘物理结构
扇区 磁头 磁道 柱面 磁道数
扇区*一个磁道上的扇区个数*磁头数=柱面
柱面*磁道数=硬盘大小
一个扇区512字节 最小单位
单位 C H S
扇区 柱面 磁盘
MBR
硬盘中的前512字节,第一个扇区,以55aa结束的认为是有分区的,没有则认为无。
GPT
硬盘前512字节模拟MBR创造一个分区,以55aa结束。
Hexdump 将二进制文件转换成十六进制或八进制显示
dd 转换或者辅助一个文件。
分区
Fdisk 操作硬盘分区或分区表
/dev/sdX 查看硬盘分区信息
-c (centos6) 打开或禁用dos模式
-u (centos6) 切换显示的单位(扇区/柱面)
-c (centos7) -c=dos -c=nondos
-u (centos7) -u=cylinders -u=sectors
fdisk /dev/sdX 进行分区
m 帮助
n 建立分区
d 删除分区
p 显示分区信息
t 转换分区类型
a 将指定分区设置/取消 活动分区
L 查看分区类型
o 重建分区表
v 验证分区表,显示剩余没有被分区划分的扇区数量
g 创建GPT格式的分区(centos7)
q 退出不保存
w 退出并保存,不保存,所有的修改都不生效
Sync 强制同步yingpan数据
echo ‘- – -’ > /sys/class/scsi_host/host0/scan
scan 内存通信设备 传输信号 加载硬盘。
Lsblk 列出块设备,分区列表
cat /proc/partitions
查询内存中存储的 磁盘信息
parted /dev/sdX
mklabel msdos/gpt
help
mkpart
parted /dev/sdX mkpart primary 1 1000 难用 !!!
gdisk 操作方式与fdisk相似
partprode 当对系统所在的硬盘进行分区修改操作后,内存不会重读分区表,需要使用partprobe强制重读,centos6 有bug。
partx -a /dev/sdX 向内存中增加分区更新
partx -a –nr 【N-M】 /dev/sdX 从内存中删除分区更新
mkfs.ext4 /dev/sdb1
mkfs -t extX/xfs/btrfs/vfat /dev/sdX
mke2fs -t extX /dev/sdX
与磁盘添加文件系统。
blkid 查看所有的块设备
-L LABEL 用卷名查找块设备
-U UUID 用UUID查找块设备
文件系统
mkfs 创建文件系统
-L 创建时设置卷标
-t 创建时文件系统
-b 块设备大小
-m 管理员预留空间
-o 调整文件系统的默认挂载选项,
-U 指定UUID号
-g 块组 设置
mke2fs 专用来创建ext格式类型的文件系统的命令。
-t 文件系统类型 ext2、ext3、ext4
-m 管理员预留大小
-g 块组设置
tuen2fs -l 显示详细的超级快信息
-L 设置卷标
-o
resize2fs 可以增加或减小文件系统的大小
findfs
指定LABEL或UUID显示分区名
tune2fs /dev/sda10 修改文件系统信息
-l 显示文件系统信息(与dumpe2fs -h 信息基本一致)
dumpe2fs /dev/sda10 查看文件系统信息:superblock信息及block group信息
-h 不显示block group而只显示superblock 与tune2fs -l一致
fsck/e2fsck 先卸载再修复
-t filetype
-f 强制修复
-y 非交互式
-r 交互式
-p 自动修复
挂载
mount 设备名 挂载点
-t 指定文件系统类型
-r 只读挂载
–remount,ro|rw 也会新/etc/fstab中的选项,如果与指定的冲突,则remount后指定的优先。
-n 隐藏挂载信息不显示,但在/proc/mounts可以查到
-a 读取/etc/fstab,挂载其中没有挂载的设备
-L ‘LABEL’: 以卷标指定挂载设备
-U ‘UUID’: 以UUID指定要挂载的设备
-B –bind 目录挂目录
-o 选项
sync,async 同步,异步(defaults)
atime(defaults),noatime 是否在读访问时更新atime
diratime(defaults),nodiratime
auto(defaults)/noauto 写在/etc/fstab当中的分区,是否在mount -a时被挂载
exec(defatuls)/noexec 在该分区所挂载的目录中的脚本是否可以执行。
dev(defaults)/nodev:是否支持在此文件系统上使用设备文件
suid(defaults)/nosuid:不否支持suid和sgid权限
remount:重新挂载
ro:只读
rw:读写(defaults)
user/nouser(defaults):是否允许普通用户挂载此设备,默认管理员才能挂载
acl:启用此文件系统上的acl功能
defaults 默认,见以上中的(defaults)
开机挂载 配置文件
/etc/fstab
lsof 设备名或挂载点 查询在该挂载点上的运行的进程
fuser -v 挂载点
-km 挂载点 强制结束所有执行在挂载点上的进程
umount 设备名/挂载点
/etc/fstab filesystem table
网络地址挂载
172.17.253.164:/common /mnt/nfs nfs defaults 0 0
//172.17.X.X/shares /mnt/share cifs defaults,username=test,password=te st 0 0
增加swap
fdisk/gfisk 添加一个分区类型设置为82
partx -a /dev/sd? (centos6) parprode (centos7)
mkswap /dev/sd?? 也可以对文件做
swapon /dev/sd?? 手动激活
swapon -p 10 /dev/sd?? 指定优先级 数字越大优先级越高 系统设置为负数
swapoff /dev/sd?? 手动关闭
swapoff -a 禁用所有swap
swapon -s 显示优先级
开机自动激活 写入 /etc/fstab 后swapon -a
LABEL=SWAPA(也可以写分区名或UUID) swap swap defaults,pri=X 0 0
移动介质链接监测
tail -f /var/log/message
udevadm monitor
光盘挂载
mount -o loop /root/centos69_1.iso /mnt/centos69
/root/centos69_1.iso /mnt/centos69 iso9660 defaults,loop 0 0
创建iso文件
cp /dev/cdrom /root/centos7.iso 源是设备,可以直接复制
mkisofs -r -o /root/etc.iso /etc 源是目录或文件
刻录光盘
wodim –v –eject centos.iso
df
-h 以人类阅读方式
-H 以人类阅读方式 1000为单位
-T 显示文件系统类型
-a 显示所有的挂载信息包含bind
-i 显示inodes的使用信息
du 查看一个目录与目录下文件的总大小
-h 以人类阅读方式
-s 显示总和
dd
of=file 写到所命名的文件而不是到标准输出
if=file 从所命名文件读取而不是从标准输入
bs=size 指定块大小(既是是ibs也是obs)
ibs=size 一次读size个byte
obs=size 一次写size个byte
cbs=size 一次转化size个byte
skip=blocks 从开头忽略blocks个ibs大小的块
seek=blocks 从开头忽略blocks个obs大小的块
count=n 只拷贝n个记录
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
dd if=/dev/sda of=/dev/sda
0 关机 1 halt
1 单用户模式 仅root登录无需输入密码 10
3 多用户模式 30
4 用户自定义
5 多用户模式+图形化 31
6 重启 1 reboot
poweroff init 0
reboot init 6
挂载实验
实验:迁移/home
init 1
vim /etc/selinux/config
SELINUX=permissive
fdisk /dev/sda
partx -a /dev/sda
mkfs.ext4 /dev/sda6
mount /dev/sda6 /mnt
cp -a /home/* /mnt
备份home
mkdir /home
vim /etc/fstab
/dev/sda6 /home ext4 defaults,usrquota,grpquota 0 2
reboot
quotacheck -cug /home
quotaon /home
quotaoff /home
edquota -u/g username
quota 查看自己的
quota -vu/vg username
repquota -avu 查看所有用户的quota
-avg 查看所有组的quota
setquota -u liubei 20M 30M 200 300 /home
edquota -p liubei guanyu
warnquota -u 给所有超过限制的用户发邮件
-g 当组的限制超出时,给组管理员发邮件,管理员需在/etc/quotagrpadmins 中指定 groupname: username
raid0 条带化 chunk最小写入单位 至少2块盘 空间大小 单块磁盘大小*n
raid1 镜像 1/n 读性能提升,写入比单块盘慢 空间始终是一块盘的大小 容错率高 可以坏 n-1块盘
raid10 容错高于raid01 但空间损失更多,读写性能 提升 造价高。
raid5 增加一块校验盘
raid阵列
创建raid
mdadm -C /dev/mdo -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}
-C /dev/mdX(设备名) 创建设备名
-a yes 当没有所有的/dev/mdX 设备时,自动创建该设备
-l 数字 指定类型的raid
-n 数字 指定成员数
-x 数字 指定备用盘数
-c 数字 指定chunk大小, 仅限raid0 raid5
/dev/sdX… 指定raid的成员盘
删除raid
umount
mdadm -D /dev/md2 先查一下,该raid由哪有成员组成
mdadm -S /dev/md2
mdadm –zero-superblock /dev/sdf4
mdadm –zero-superblock /dev/sdf3
清空/etc/mdadm.conf当中,该raid的信息
mdadm /dev/md0 -f /dev/sdd 模拟将/dev/md0 raid中的sdd坏掉
mdadm /dev/md0 -r /dev/sdd 将/dev/md0 raid中的sdd 拔掉
mdadm /dev/md0 -a /dev/sdd 向/dev/md0 增加设备sdd 如数据盘不够,则加为数据盘,如够,加为热备盘
mdadm -G /dev/md0 -n 6 -a /dev/sdh 将/dev/md0的数据盘设置为6个,并将/dev/sdh加入为数据盘。
mdadm -A /dev/md1 /dev/sdb /dev/sdc 当没有将md1信息保存至mdadm.conf时,只能手动指定raid成员
mdadm -D -s > /etc/mdadm.conf 将所有的raid成员信息保存至mdadm.conf文件
mdadm -D -s /dev/md0 >> /etc/mdadm.conf 仅将md0的信处追加保存至mdadm.conf文件
mdadm -A /dev/md1 从/etc/mdadm.conf中读取成员信息,并仅激活md1
mdadm -A -s 从/etc/mdadm.conf中读取成员信息,并激活所有的raid
LVM
物理卷
pvcreate /dev/设备名 创建物理卷 (可以是raid,硬盘,分区,文件)
pvremove /dev/设备名 删除物理卷
pvs 简略显示物理卷信息
pvdisplay 详细显示物理卷信息
pvmove 将该物理卷上的数据移出该物理卷
VG组
vgcreate VG名 /dev/设备名 (可以多个)
-s 指定PE大小(PE作为VG的最小分割单位) 默认4M 最大8M
vgchange -s 可向下更改PE大小
vgreduce VG名 /dev/设备名 减少一个VG组的成员
vgextend VG名 /dev/设备名 增加一个VG组的成员
vgs 简略查看VG的信息 跟名字可以查看单个VG的简略信息
vgdisplay 详细查看VG信息 跟名字可以查看单个VG的详细信息
逻辑卷
lvcreate 创建逻辑卷
示例 lvcreate -L 大小 -n 名字 vg名
-l 数字 以PE为单位的个数
-L #{K,M} 向上靠拢PE整数个的数值
lvcreate -l # vgmage26 /dev/vgmage26/lv_0
lvcreate -L #M vgmage26 /dev/vgmage26/lv_0
lvextend 扩展逻辑卷大小
lvremove 删除一个逻辑卷
lvreduce 减少一个逻辑卷大小
lvs 简略显示逻辑卷信息
lvdisplay 详细显示逻辑卷信息
实验:
扩展逻辑卷
1.先检查需要扩展的大小,VG是否有足够可用空间
如果不够则
pvcreate /dev/md2
vgextend vgmage26 /dev/md2
2.如足够则扩展逻辑卷大小
lvextend -L 1G/+1G /dev/vgmage26/lvmage26_01
lvextend -l +100%FREE /dev/vgmage26/lvmage26_01
3.扩展文件系统大小
resize2fs /dev/vgmage26/lvmage26_01
或
resize2fs /dev/vgmage26/lvmage26_01 500M 只增加到500M的文件系统
如果是xfs文件系统 用xfs_growfs
xfs_growfs /dev/vg01/lv01
lvextend -L +500M -r /dev/vgmage26/lvmage26_01 可在lvextend 时加-r 直接一步到位,先扩展逻辑卷大小后直接增加文件系统大小
实验:减小逻辑卷大小 仅支持Ext文件系统
1.umount /mnt/lvmage26_01
2.e2fsck -f /dev/vgmage26/lvmage26_01
3.resize2fs /dev/vgmage26/lvmage26_01 300M
4.lvreduce -L 300M /dev/vgmage26/lvmage26_01
5.mount
实验:将某块盘从LVM中分离出来
1.先确保数据不在这块PV上
用pvs查看
2.如果在这块PV上,则将数据转移到同卷组的其他PV上
pvmove /dev/pv1名 /dev/pv2名(可以不指定)
3.将pv从Vg中移出
vgreduce vg名 /dev/pv名
4.删除该盘的pv属性
pvremove /dev/pv名
实验:将LVM迁移到其他主机
1.将数据移到目标磁盘对应的PV上。(该磁盘不要有其他与该PV无关的分区)
pvmove /dev/pv1名 /dev/pv2名
vgreduce vg名 /dev/pv(多余) 移动除要移动的PV以外的其他PV
2.确保要迁移的VG名与目的系统没有同名的VG
vgrename vgmage26 vg02
lvrename /dev/vg02/lvmage26_01 /dev/vg02/lv01 (非必须)
3.umount /mnt/lvmage26_01/
4.vgchange -an vg02 禁用VG上的所有LV
5.vgexport vg名
关机(如果支持热插排,则不用关机),拔硬盘,插到目标主机上。
6.pvscan
vgscan
lvscan
vgimport vg名
vgchange -ay vg名
7.mount /dev/vg名/lv名 /mnt/
lvm快照
lvcreate -L 大小{M,G,K} -n 快照名称 -s -p r /dev/vgmage/lvmage 创建快照
-L 创建快照大小
-s 指定哪个文件的快照
-p 设定快照权限 如:r 过着rw
lvremove 快照名称 删除快照
lvextend -L +300M/300M 快照名称 扩展快照
恢复源和快照
umount 源和快照
lvconvert –merge 快照明 该操作会删除快照
mount 源
对有快照的逻辑卷进行扩展
1.umount 源和快照
2.lvchange -an 源 将源及快照设置为inactive
3.lvextend -L -r 200M 源名字 (-r不一定能用)
4.e2fsck -f 扫描
5.resize2fs/xfs_growfs …
建议,直接删除快照,可以在线扩展逻辑卷,最后重建快照
作业:
1、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
ehco ‘- – -‘ > /sys/class/scsi_host/host2/scan
pvcreate /dev/sdX
vgcreate -s 16M testvg /dev/sdX
lvcreate -L 5G -n testlv testvg
mke2fs -t ext4 /dev/testvg/testlv
mkdir /users
mount /dev/tsetvg/tsetlv /users
2、新建用户archlinux,要求其家目录为/users/archlinux,而后su切换archlinux用户,复制/etc/pam.d目录至自己的家目录
useradd -d /users/archlinux archlinux
cp -r /etc/pam.d
3、扩展testlv至7G,要求archlinux用户的文件不能丢失
lvextend -L 7G -r /dev/tsetvg/tsetlv
4、收缩testlv至3G,要求archlinux用户的文件不能丢失
umount /users
e2fsck -f /dev/tsetvg/tsetlv
resize2fs /dev/tsetvg/tsetlv 3G
lvreduce -L 3G /dev/tsetvg/tsetlv
mount /dev/tsetvg/tsetlv
5、对testlv创建快照,并尝试基于快照备份数据,验正快照的功能
umount 源和快照
lvconvert –merge 快照名 (该操作成功会删除快照)
mount 源
赞 (0)
有趣的bash脚本
上一篇
2017-08-25
Shell脚本-循环基础
下一篇
2017-08-26