码迷,mamicode.com
首页 > 系统相关 > 详细

linux 磁盘管理

时间:2018-06-05 14:07:29      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:linux磁盘文件管理命令

  • 创建设备文件

        mknod /app/sda b 8 0
        mknod /app/zhongduan1 c 4 1
  • 命名规则

      • centos5及之前
        ide /dev/hda
        /dev/hdb
        ...
        /dev/hdaa
        sata/sas/scsi/usb /dev/sda
        /dev/sdb
      • centos6及之后

               sata/sas/scsi/usb/ide  /dev/sda

  •      kvm虚拟机的虚拟硬盘   /dev/vda
    
         xen虚拟机的虚拟硬盘   /dev/xvda
    
          vmware的虚拟硬盘      /dev/sda

    • 磁盘的三围

       c:2^10=1024 c:表示柱面
       h:2^8=256      h:表示磁头也是磁道面
       s:2^6=64        s:表示扇区

    一个扇区大小512byte
    256*64*1024*512/1024/1024/1024=8GB

    单位大小:K, M, G, T, P, E, Z, Y, B, N, D
    
    1.BIOS basic input/output system 自检
    
    2.由第一启动项,引导OS
    
    3.MBR Master boot record 主引导记录
    446 boot loader
            lilo   linux loader
            grub    
            grub2
    16*4=64 分区
    
    55 AA  结束位
    
    16字节   CHS  24bit
    分区是否活动   head    扇区6    2+  8 =10 柱面   分区的类型     head    扇区6    2+  8 =10 柱面
     1          2              3        4          5               6     7           8
    
    9     16 表示扩展分区
    • dd命令

        skip=xxx 是在备份时对if后面的部分也就是原文件跳过多少块
        seek=xxx 是在备份时对of后面的部分也就是目标文件跳过多少块开始写

    实验一:备份mbr,并破坏,再恢复
    1.备份mbr
    dd if=/dev/sda of=/app/mbr.img bs=1 count=512
    2.将mbr.img 复制到其他主机 sz /app/mbr.img
    3.破坏mbr
    dd if=/dev/zero of=/dev/sda bs=1 count=512
    4.关机
    5.在另一个主机上将被破坏的硬盘添加
    6.在vmware虚拟机,新加硬盘不用重启的生效方法
    echo ‘- - -‘ > /sys/class/scsi_host/host0/scan
    7.恢复
    dd if=mbr.img of=/dev/sdb
    8.poweroff
    9.开启被恢复的主机
    10.从恢复机中删除故障硬盘


    实验二:仅破坏分区表,并恢复.
    dd if=/dev/zero of=/dev/sda bs=1 count=64 seek=446
    dd if=/app/mbr.img of=/dev/sda bs=1 count=64 skip=446 seek=446


    实验三:新增硬盘sdb,并使用sda的mbr备份来恢复sdb的分区表
    dd if=/app/mbr.img of=/dev/sdb bs=1 count=66 skip=446 seek=446

    • lsblk
    • parted

       parted 支持msdos和gpt
       交互和非交互
       parted /dev/sda
       parted -l 列出所有硬盘的分区信息
       parted /dev/sda print 列出指定硬盘的分区
       parted /dev/sdb mklabel msdos 设置硬盘的分区类型
                          或gpt
       parted /dev/sdb mklabel msdos -s 自动回答yes
       parted /dev/sdb mkpart primary 1 2G
       parted /dev/sdb mkpart primary 2G 4G
       parted /dev/sdb mkpart primary 4G 6.5G
       parted /dev/sdb mkpart extended 6.5G 21.5G
       parted /dev/sdb mkpart logical 6.5G 7G
      
       fdisk 支持msdos,在centos7中也支持gpt(不建议使用)
       fdisk -l 查看所有硬盘的分区信息
       fdisk -l /dev/sda 查看指定硬盘的分区信息
    • fdisk

       fdisk /dev/sdb
       o 设置msdos分区表
       g 设置gpt分区表(不建议使用)
       m 帮助
       n 创建分区
       p 主分区
       e 扩展分区 (请把所有空间分给扩展)
              起始的扇区数 一般直接回车,取可用的最小扇区
              结束的扇区数 一般用+XX K/M/G 来指定具体分多少大小的分区
       q 退出不保存
       w 退出并保存    
       t 设置分区的类型
       L 查看分区的类型所对应的代码表示方式
      d 删除指定分区
      a 设置该分区为启动分区,或设置为非启动
      p 显示分区表
      u 更新显示分区起止的单位,在扇区和柱面之间切换

      非交互方式
      echo -e "n\np\n\n\n+1G\nw\n" |fdisk /dev/sdb &> /dev/null

    • gpgdisk

        gdisk  只能划分gpt分区
        gdisk -l 列出所有硬盘分区表
        gdisk -l /dev/sdb 列出指定硬盘的分区表
        gdisk /dev/sdb 对分区进行划分
        o 创建gpt分区表
        m 帮助
        n 创建分区
             起始的扇区数 一般直接回车,取可用的最小扇区
             结束的扇区数 一般用+XX K/M/G 来指定具体分多少大小的分区
       q 退出不保存
       w 退出并保存    
        t 设置分区的类型
        L 查看分区的类型所对应的代码表示方式
       d 删除指定分区
        p 显示分区表
      
       非交互方式
       echo -e "n\n\n\n+2G\n\nw\ny\n" |gdisk /dev/sdb
      
       cat /proc/partitions 当前内核所加载的分区表

     对于非系统所在硬盘,内核自动更新分区表,而对于系统所在硬盘,不能直接列新,要使用以下命令
    通知内核读取分区表
    cenots5\centos7: partprobe (centos6不可用)
    centos6:partx -a /dev/sda  添加
    partx -d --nr /dev/sda7 删除

    linux 磁盘管理

    标签:linux磁盘文件管理命令

    原文地址:http://blog.51cto.com/11912662/2124997

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!