设为首页 收藏本站
查看: 864|回复: 0

[经验分享] linux分区管理

[复制链接]

尚未签到

发表于 2018-5-16 11:48:15 | 显示全部楼层 |阅读模式
  管理分区
       列出块设备
              lsblk
                  例 在centos6上加了几块硬盘
                        [root@centos6 ~]#lsblk    没有识别出来
                        [root@centos6 ~]#echo '- - -' > /sys/class/scsi_host/host2/scan  强制扫描
                        [root@centos6 ~]#lsblk   已识别
                        [root@centos6 ~]#hexdump -C -n 512 /dev/sdb  二进制查看新建硬盘没用数据
  例 破坏MBR分区表并恢复
                        [root@centos6 ~]#dd if=/dev/sda of=/app/mbr bs=1 count=512  备份分区表到/app/mbr
                        [root@centos6 ~]#ll /app/mbr   查看确实是512字节
                        [root@centos6 ~]#hexdump -C /app/mbr    二进制查看
                        [root@centos6 ~]#dd if=/dev/zero of=/dev/sda bs=1 count=64 skip=446 seek=446  破坏分区表
                                 count=64 64个字节,skip=446 跳过前446个字节开始读取,seek=446 跳过目标的前446个字节开始写 从第446个字节开始搜索(跳过446个字节,只覆盖中间的64个字节)
                        [root@centos6 ~]#hexdump -C -n 512 /dev/sda  查看被0填充
                        [root@centos6 ~]#lsblk   还可以查看分区,是因为内存中还存有一份,如果重启就完蛋
                        [root@centos6 ~]#fdisk -l /dev/sda    无法查看分区,因为这个命令是查看磁盘上的分区表
                             查看分区四种方式
                                      ls /dev/sd*   看设备名的方式    内存中
                                      cat /proc/partitions      内存
                                      lsblk   内存
                                      fdisk -l /dev/sda    看磁盘上的分区表
                        [root@centos6 app]#scp mbr 192.168.27.129:/app/   将备份的分区表存到另外的机子上(centos7)
                        [root@centos7 ~]#ls /app/   查看centos7上确实有备份的mbr文件
                        [root@centos6 app]#reboot   重启发现无法启动
                        此时可以拆下硬盘挂到别的机子上将分区表恢复,也可以进入光盘救援模式
                        重启出现进度条时按Esc键,选择“CD-ROM Drive” “Rescue installed system”,进入救援模式
                        bash-4.1# pwd    现在的根目录不是硬盘的根目录,是光盘加载的一个简化版的小Linux系统
                        bash-4.1# lsblk  不能看
                        bash-4.1# fdisk -l 可以看到硬盘
                        bash-4.1# ip a  查看是否获取到IP
                        bash-4.1# scp 192.168.27.129:/app/mbr .  将备份复制到当前目录
                        bash-4.1# dd if=mbr of=/dev/sda bs=1 count=64 skip=446 seek=446  也可以512字节全部覆盖
                        bash-4.1# exit  退出然后选择重启
  例 将sda的分区表复制到sdb(新加的硬盘)(生产中不建议这么做,因为两块硬盘大小,分区方式不一定相同,而且复制不了逻辑分区,因为逻辑分区信息放在扩展分区中,不在mbr中)
                        [root@centos6 ~]#lsblk    sdb是新加的一块硬盘
                        [root@centos6 ~]#dd if=/app/mbr of=/dev/sdb bs=1 count=66 skip=446 seek=446
                                将分区表复制到sdb,count=66 包括最后的两个标识符
                        [root@centos6 ~]#partx -a /dev/sdb   同步分区表
                        [root@centos6 ~]#lsblk   看到sdb出现分区
                        [root@centos6 ~]#dd if=/dev/zero of=/dev/sdb bs=1 count=512    删除sdb分区
                        [root@centos6 ~]#hexdump -C /dev/sdb           二进制查看
                        [root@centos6 ~]#fdisk -l /dev/sdb         查看
   

  创建分区使用:
                  fdisk 创建MBR分区
                  gdisk 创建GPT分区
                  parted 高级分区操作
         partprobe-重新设置内存中的内核分区表版本
  
parted命令
         parted的操作都是实时生效的,小心使用
         用法:parted [选项]... [设备 [命令 [参数]...]...]   
              parted /dev/sdb  mklabel gpt|msdos     创建gpt或mbr分区
              parted /dev/sdb  print  
              parted /dev/sdb  mkpart primary 1 200 (默认M)  
              parted /dev/sdb  rm 1  
              parted -l
                  例 [root@centos6 ~]#parted /dev/sdb mklabel gpt  在新硬盘sdb上建立gpt分区
                      [root@centos6 ~]#parted /dev/sdb print  查看
                      [root@centos6 ~]#fdisk -l /dev/sdb   传统工具也可查看,但会提示不支持
                      [root@centos6 ~]#parted /dev/sdb mkpart primary 1 1000   创建主分区1-1000M
                      [root@centos6 ~]#parted /dev/sdb print  查看
                      [root@centos6 ~]#parted /dev/sdb rm 1   删除分区
  
分区工具fdisk和gdisk
         gdisk /dev/sdb 类fdisk 的GPT分区工具
         fdisk -l [-u] [device...] 查看分区
         fdisk /dev/sdb  管理分区
              例 重定向方法创建分区
                   [root@centos6 ~]#echo -e 'n\np\n2\n\n+10G\nw\n' | fdisk /dev/sdc
                   [root@centos6 ~]#fdisk /dev/sdc <<EOF   或者多行重定向
                        > n
                        > p
                        > 2
                        >
                        > +5G
                        > w
                        > EOF
         子命令:
                  p 分区列表
                  t 更改分区类型
                  n 创建新分区
                  d 删除分区
                  v 校验分区
                  u 转换单位
                  w 保存并退出
                  q 不保存并退出
  同步分区表
       查看内核是否已经识别新的分区:  
              cat /proc/partitions
       centos6通知内核重新读取硬盘分区表  
              新增分区用   
                   partx -a  /dev/DEVICE     
                   kpartx -a /dev/DEVICE -f: force  
              删除分区用  partx -d --nr M-N /dev/DEVICE
                   例 [root@centos6 ~]#partx -d --nr 1-4 /dev/sde    (由于删除sde1 sde2 sde3 sde4导致的不同步)
     CentOS 5,7: 使用partprobe  
              partprobe [/dev/DEVICE]
  创建文件系统
        mkfs命令:
         (1) mkfs.FS_TYPE /dev/DEVICE   
                       ext4   
                       xfs   
                       btrfs   
                       vfat
         (2) mkfs -t FS_TYPE /dev/DEVICE   
                       -L 'LABEL': 设定卷标
         例 [root@centos6 /]#mkfs.ext4 /dev/sdb2   创建文件系统
              [root@centos6 /]#blkid  查看
         例 三种写法
              [root@centos6 /]#mkfs.ext2 /dev/sdb3
              [root@centos6 /]#mkfs -t ext2 /dev/sdb3
              [root@centos6 /]#mke2fs /dev/sdb3
  支持的文件系统:/lib/modules/`uname –r`/kernel/fs  
查前支持的文件系统:cat /proc/filesystems

  创建ext文件系统
        mke2fs:ext系列文件系统专用管理工具  
                -t {ext2|ext3|ext4}  
                -b {1024|2048|4096}  指定块大小
                     例 [root@centos6 ~]#tune2fs -l /dev/sdb3    留意 Block size
                          [root@centos6 ~]#mkfs -b 1024 /dev/sdb3   指定为1024    1024个字节,1K
                          [root@centos6 ~]#mke2fs -b 2048 /dev/sdb3  指定为2048   2K
  -L 'LABEL'  
                -j: 相当于 -t ext3     
                     mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3  
                -i #: 为数据空间中每多少个字节创建一个inode;此大 小不应该小于block的大小  
                -N #:指定分区中创建多少个inode  
                -I 一个inode记录占用的磁盘空间大小,128---4096  
                -m #: 默认5%,为管理人员预留空间占总空间的百分比  
                -O FEATURE[,...]:启用指定特性  
                -O ^FEATURE:关闭指定特性
  文件系统标签
        指向设备的另一种方法
        与设备无关
        blkid:块设备属性信息查看
              blkid [OPTION]... [DEVICE]
              -U UUID: 根据指定的UUID来查找对应的设备
                   例 通过/app对应的UUID查找设备
                        [root@centos6 ~]#blkid -U `sed -rn 's#^UUID=(.*) /app .*#\1#p' /etc/fstab` (/app后加空格是为防止名称为apppp)
              -L LABEL:根据指定的LABEL来查找对应的设备
                   例 [root@centos7 ~]#mkfs.xfs -f /dev/sdb1 -L /mnt/sdb1  
                        sdb1挂载到文件夹/mnt/sdb1    建议卷标名设为设备挂载点的文件夹名称
  e2label:管理ext系列文件系统的LABEL  
              e2label DEVICE [LABEL]
                   例 [root@centos6 ~]#e2label /dev/sdb2 /mnt/sdb2    添加卷标(将挂载点作为卷标)
        findfs :查找分区  
              findfs [options] LABEL=<label>  
              findfs [options] UUID=<uuid>
  tune2fs:重新设定ext系列文件系统可调整参数的值  
        -l:查看指定文件系统超级块信息;super block  
        -L 'LABEL':修改卷标  
        -m #:修预留给管理员的空间百分比  
        -j: 将ext2升级为ext3  
        -O: 文件系统属性启用或禁用, –O ^has_journal
              例 [root@centos6 ~]#tune2fs -O has_journal /dev/sdb3 (sdb3原来为ext2,变为ext3)
                   [root@centos6 ~]#tune2fs -O ^has_journal /dev/sdb3 再去掉  (注意UUID不会发生变化)
         -o: 调整文件系统的默认挂载选项,–o ^acl   
         -U UUID: 修改UUID号
dumpe2fs:  
          块分组管理,32768块  
          -h:查看超级块信息,不显示分组信息
  文件系统检测和修复
        常发生于死机或者非正常关机之后
        挂载为文件系统标记为“no clean”
        注意:一定不要在挂载状态下修复
        fsck: File System Check  (其实是调用e2fsck)
              fsck.FS_TYPE  
              fsck -t FS_TYPE  
              -p: 自动修复错误  
              -r: 交互式修复错误  
              FS_TYPE一定要与分区上已经文件类型相同
        e2fsck:ext系列文件专用的检测修复工具  
              -y:自动回答为yes  
              -f:强制修复
  例
              [root@centos6 ~]#dd if=/dev/zero of=/dev/sdb2 bs=1M count=10   破坏sdb2
              [root@centos6 ~]#dumpe2fs /dev/sdb2    超级块信息不能查看
              [root@centos6 ~]#fsck /dev/sdb2   修复,需要回答好多yes
              [root@centos6 ~]#fsck -a /dev/sdb2   -a不自动回答yes

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-460963-1-1.html 上篇帖子: linux的nfs服务 下篇帖子: 认识及安装Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表