磁盘管理

硬盘物理结构
     扇区  磁头  磁道   柱面   磁道数
     扇区*一个磁道上的扇区个数*磁头数=柱面
     柱面*磁道数=硬盘大小
     一个扇区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 源
     

原创文章,作者:何必呢,如若转载,请注明出处:http://www.178linux.com/85360

(0)
何必呢何必呢
上一篇 2017-08-25
下一篇 2017-08-26

相关推荐

  • 2016年8月11号学习博客

    shell脚本编程 shell脚本是包含一些命令或声明,并符合一定格式的文本文件 shell脚本的用途有: 自动化常用命令 执行系统管理和故障排除 创建简单的应用程序 处理文本或文件 命令查询过程:别名–>内部变量–>hash–>$PATH ~]#bash -n 检测脚本语法错误 ~]#bash -x 顺…

    Linux干货 2016-08-15
  • iptables归纳总结

    先简单介绍下iptables IPTABLES的几点概念  1、容器:包含或者说属于的关系  2、Netfilter/iptables是表的容器,iptables包含的各个表 (filter,NAT,MANGLE,RAW)  3、iptables的表tables又是链的容器 链chains:INPUT,OUTPUT,FORWAR…

    Linux干货 2017-05-02
  • 推荐-NFS共享MySQL使用DNS轮询实现Web负载均衡

    NFS共享MySQL使用DNS轮询实现Web负载均衡 NFS共享MySQL使用DNS轮询实现Web负载均衡 前言: 实验拓扑图 实验环境 实验步骤 搭建NFS 搭建dns,MySQL环境 DNS配置 MySQL配置 WEB配置 第一台主机安装 第二台主机安装 测试 web1测试 web2测试 回到web1测试 总结 前言: 今天学习了NFS,遂结合前面学习的…

    Linux干货 2016-03-29
  • Linux文件类型以及颜色标识

    1、Linux文件类型介绍   Linux系统不同于window系统,两者文件类型也有很大的差异。Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念。我们通过一般应用程序而创建的比如file.txt、file.tar.gz,这些文件虽然要用不同的程序来打开,但放在Linux文件类型中衡量的话,大多是常规文件(也被称为普…

    Linux干货 2016-10-17
  • 从Linux小白到大牛——与狼共舞的日子9

    马哥教育网络班21期+第9周课程练习 1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; [root@localhost ~]# cat shell.sh  #!/bin/bash # declare…

    Linux干货 2016-12-05
  • 设计模式 ( 二十 ) 访问者模式Visitor(对象行为型)

    特此说明:对访问者模式理解不是特别透彻,若有误,请指正,谢谢! 1.概述 在软件开发过程中,对于系统中的某些对象,它们存储在同一个集合collection中,且具有不同的类型,而且对于该集合中的对象,可以接受一类称为访问者的对象来访问,而且不同的访问者其访问方式有所不同。 例子1:顾客在超市中将选择的商品,如苹果、图书等放在购物车中,然后到收银员处付款。在购…

    Linux干货 2015-04-07