zoukankan      html  css  js  c++  java
  • 磁盘管理 | parted

    磁盘管理 | parted

    1. 介绍

    parted命令是由GNU组织开发的一款功能强大的磁盘分区和分区大小调整工具,与fdisk不同,它支持调整分区的大小。作为一种设计用于Linux的工具,它没有构建成处理与fdisk关联的多种分区类型,但是,它可以处理最常见的分区格式,包括:ext2、ext3、fat16、fat32、NTFS、ReiserFS、JFS、XFS、UFS、HFS以及Linux交换分区。

    fdisk不能处理 2T 以上的此案,因此不如直接使用parted命令
    parted命令主要有 2 种模式:命令行模式和交互模式

    1.1 MBR与 GPT

    MBR(Main Boot-loader Record)主引导记录。最大支持 2T 的卷,且对分区有限制,只能 4 个主分区或 3 个主+一个逻辑分区。Windows 常用这种模式;

    GPT(GUID Partition Table)即 GUID 分区表,突破 4 个主分区的限制,每个磁盘最多支持 128 个分区,支持大于 2T 的分区。最大卷为 18EB

    2. 命令详解

    parted [选项]... [设备 [命令 [参数]...]...]
    将带有“参数”的命令应用于“设备”。如果没有给出“命令”,则以交互模式运行

    2.1 帮助

    命令 
    -h(--help) 显示此求助信息
    -l(--list) 列出所有设别的分区信息
    -i(--interactive) 在必要时,提示用户
    -s(--script) 从不提示用户
    -v(--version) 显示版本

    2.2 操作

    命令描述
    check minor-num 执行文件系统检查
    cp from to 将文件系统复制到另一个分区
    set FLAG STATE 对指定编号的分区设置分区标记 FLAG,FLAG可为 boot/hidden/raid/lvm 等,STATE 为 on/off
    print {free|NUM|all} 显示分区表或指定编号的分区表
    mkpart PART-TYPE START END 创建新分区,PART-TYPE支持primary, extended, logical, START-END 为分区起始和结束位置
    rm NUM 删除指定编号 NUM 的分区
    检查MINOR 对文件系统进行一个简单的检查
    mklabel LABEL 为分区表创建磁盘标签
    mkfs MINOR 文件系统类型 在 MINOR 创建类型为“文件系统类型”的文件系统
    mkpart 分区类型 [文件系统类型] 起始点 终止点 创建一个分区
    mkpartfs 分区类型 文件系统类型 起始点 终止点 创建一个带有文件系统的分区
    move MINOR 起始点 终止点 移动编号为 MINOR 的分区
    name MINOR 名称 将编号为 MINOR 的分区命名为“名称”(MAC & PC 支持)
    rescue 起始点 终止点 挽救临近“起始点”、“终止点”的遗失的分区
    resize MINOR 起始点 终止点 改变位于编号为 MINOR 的分区中文件系统的大小
    rm MINOR 删除编号为 MINOR 的分区
    select 设备 选择要编辑的设备

    3. 实例

    3.1 查询类

    1. 打印某磁盘分区表
      parted -s /dev/sda print
      结果:
    Model: AVAGO AVAGO (scsi)
    Disk /dev/sda: 599GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt  # 分区表格式为 gpt
    Disk Flags:
    
    Number  Start   End    Size   File system  Name     标志
     1      1049kB  512MB  511MB               primary  bios_grub
     2      513MB   599GB  598GB  ext4         primary  启动

    可知磁盘 sda 一共有 2 个分区。

    注意
    MBR支持的磁盘最大容量为2 TB,GPT最大支持的磁盘容量为18 EB,使用大于2 TB的磁盘容量,分区形式请采用GPT。当磁盘已经投入使用后,此时切换磁盘分区形式时,磁盘上的原有数据将会清除,因此在磁盘初始化时谨慎选择磁盘分区形式。

    3.2 删除分区

    parted -s /dev/sda rm 1 删除分区 1

    3.3 建立分区

    1. 指定分区格式
      parted -s /dev/sda -- mklabel gpt

    2. 做 SWAP 分区
      parted -s /dev/sda -- mkpart swap 2048s 2000
      这里的2048s表示 2048个扇区(sector),而非 2048 字节等,后面的 2000 表示磁盘截止容量。表示创建了个 2G 的 swap 分区,这里的单位为 MB

    Model: AVAGO AVAGO (scsi)
    Disk /dev/sda: 299GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    
    Number  Start   End     Size    File system     Name     标志
     1      1049kB  2000MB  1999MB  linux-swap(v1)  swap
     2      2001MB  299GB   297GB   ext4            primary  启动
        /sbin/parted -s /dev/sda -- mkpart swap   2048s  2000
        /sbin/parted -s /dev/sda -- mkpart primary   2001 2500
        /sbin/parted -s /dev/sda -- mkpart primary  2501 -1

    当针对多个磁盘执行分区命令是,那么磁盘编号会依次递进,如 sda1, sda2 等。划分完后partprobe执行生效

    1. 格式化成指定文件类型
      mkfs.ext4 -F -b 4096 -i 8192 -I 256 -m0 /dev/sda2
      对于大磁盘分配inode 节点会占用大量磁盘空间,因此一般会人工制定。
    • -i:指定多大磁盘空间分配一个 inode,这里设置为8192 字节/inode
    • -b: 指定 block 大小,默认 4096
    • -I: 指定 inode大小,默认 256
    • -m:指定保留 block 占用总数百分比,默认 5%
    • -F:强制格式化
    1. 挂载分区
      parted -s /dev/sda set 3 boot on
      表示 将sda分区编号为 3 的分区设置为 boot 分区,状态为 on

    参考

    https://en.wikipedia.org/wiki/GUID_Partition_Table
    https://baike.baidu.com/item/GPT/15413476?fr=aladdin
    https://blog.51cto.com/tlinux/1739407
    https://www.cnblogs.com/tangtianfly/archive/2012/05/17/2506329.html

  • 相关阅读:
    函数对象中的prototype属性
    undefined和null的区别
    访问修饰符
    继承
    静态成员和实例成员的区别
    js模拟Trim()方法
    连接池的执行原理
    Javascript中的= =(等于)与= = =(全等于)区别
    数据库中创建约束
    KM算法入门
  • 原文地址:https://www.cnblogs.com/hbgzy/p/11226962.html
Copyright © 2011-2022 走看看