精华内容
下载资源
问答
  • fdisk命令 磁盘分区

    2021-01-20 14:58:08
    fdisk命令的英文全称是“Partition table manipulator for Linux”,即作为磁盘的分区工具。进行硬盘分区从实质上说就是对硬盘的一种格式化, 用一个形象的比喻,分区就好比在一张白纸上画一个大方框,而格式化好比...
  • 文件系统管理-3.1fdisk 命令分区过程 写在前面:自己写完检查可能会有所纰漏,读者们如若发现哪里有错误,可在下方留言或私信我,我会第一时间改正 1. 添加新硬盘 2. 查看新硬盘 fdisk -l 3. 使用 fdisk 命令分区 ...
  • 主要介绍了Linux使用fdisk实现磁盘分区过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • UEFI fdisk 是来自 util-linux 的著名 fdisk 分区工具的 UEFI 端口,请参阅 https://github.com/karelzak/util-linux 。 现在,由于该程序直接在 UEFI shell 下运行,因此您无需*引导* 系统即可编辑分区表。
  • Linux fdisk命令 Linux fdisk是一个创建和维护分区表的程序,它兼容DOS类型的分区表、BSD或者SUN类型的磁盘列表。 语法 fdisk [必要参数][选择参数] 必要参数: -l 列出素所有分区表 -u 与”-l”搭配使用,显示...
  • 实验背景:先新购买一块SICI接口硬盘,欲添加至服务器进行使用,考虑使用fdisk命令进行分区。 分区方案:一个主分区,一个扩展分区,在扩展分区包含两个逻辑分区。 1. 创建分区 1.1 列出系统分区 1.2使用fdisk命令...
  • 分区实战模拟软件,虚拟磁盘分区操作,是想学习分区的学员的理想工具软件
  • 检测创建磁盘 fdisk 实验操作一下,创建一个磁盘分区 格式: fdisk -l [磁盘设备] 查看某个磁盘的信息 [root@localhost ~]# fdisk -l 查看所有的设备磁盘信息 fdisk [磁盘设备]: 交互的操作环境中管理磁盘分区 m ...
  • 分区命令FDISK图文详解
  • fdisk

    2018-04-02 18:28:23
    1、fdisk 的说明; 当我们通过 fdisk 设备,进入相应设备的操作时,会发现有如下的提示;以 fdisk /dev/sda 设备为例,以下同; [root@localhost beinan]# fdisk /dev/sda Command (m for help): 在这里按m ...
    1、fdisk 的说明;

    当我们通过 fdisk 设备,进入相应设备的操作时,会发现有如下的提示;以 fdisk /dev/sda 设备为例,以下同;
    [root@localhost beinan]# fdisk /dev/sda
    Command (m for help):  在这里按m ,就会输出帮助;
    2、列出当前操作硬盘的分区情况,用p;

    Command (m for help): p

    Disk /dev/sda: 1035 MB, 1035730944 bytes
    256 heads, 63 sectors/track, 125 cylinders
    Units = cylinders of 16128 * 512 = 8257536 bytes

       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1               1          25      201568+   c  W95 FAT32 (LBA)
    /dev/sda2              26         125      806400    5  Extended
    /dev/sda5              26          50      201568+  83  Linux
    /dev/sda6              51          76      200781   83  Linux

    3、通过fdisk的d指令来删除一个分区;

    Command (m for help): d 注:执行删除分区指定;
    Partition number (1-6): 6  注:我想删除 sda6 ,就在这里输入 6 ;


    Command (m for help): p 注:再查看一下硬盘分区情况,看是否删除了?
    警告:删除分区时要小心,请看好分区的序号,如果您删除了扩展分区,扩展分区之下的逻辑分区都会删除;所以操作时一定要小心;如果知道自己操作错了,请不要惊慌,用q不保存退出;切记切记!!!!在分区操作错了之时,千万不要输入w保存退出!!!


    4、通过fdisk的n指令增加一个分区;
    Command (m for help): n  注:增加一个分区;
    Command action
       l   logical (5 or over)  注:增加逻辑分区,分区编号要大于5;为什么要大于5,因为已经有sda5了;
       p   primary partition (1-4) 注:增加一个主分区;编号从 1-4 ;但sda1 和sda2都被占用,所以只能从3开始;

    p
    Partition number (1-4): 3
    No free sectors available  注:失败中,为什么失败?
    注:我试图增加一个主分区,看来是失败了,为什么失败?因为我们看到主分区+扩展分区把整个磁盘都用光了,看扩展分区的End的值,再看一下 p输出信息中有125 cylinders;最好还是看前面部份;那里有提到;所以我们只能增加逻辑分区了;
    Command (m for help): n
    Command action
       l   logical (5 or over)
       p   primary partition (1-4)
    l   注:在这里输入l,就进入划分逻辑分区阶段了;
    First cylinder (51-125, default 51):   注:这个就是分区的Start 值;这里最好直接按回车,如果您输入了一个非默认的数字,会造成空间浪费;
    Using default value 51
    Last cylinder or +size or +sizeM or +sizeK (51-125, default 125): +200M  注:这个是定义分区大小的,+200M 就是大小为200M ;当然您也可以根据p提示的单位cylinder的大小来算,然后来指定 End的数值。回头看看是怎么算的;还是用+200M这个办法来添加,这样能直观一点。如果您想添加一个10G左右大小的分区,请输入 +10000M ;


    5、通过fdisk的t指令指定分区类型;
    Command (m for help): t  注:通过t来指定分区类型;
    Partition number (1-6): 6 注:要改变哪个分区类型呢?我指定了6,其实也就是sda6
    Hex code (type L to list codes):L  注:在这里输入L,就可以查看分区类型的id了;
    Hex code (type L to list codes): b  注:如果我想让这个分区是 W95 FAT32 类型的,通过L查看得知 b是表示的是,所以输入了b;
    Changed system type of partition 6 to b (W95 FAT32)  注:系统信息,改变成功;是否是改变了,请用p查看;

    Command (m for help): p

    Disk /dev/sda: 1035 MB, 1035730944 bytes
    256 heads, 63 sectors/track, 125 cylinders
    Units = cylinders of 16128 * 512 = 8257536 bytes

       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1               1          25      201568+   c  W95 FAT32 (LBA)
    /dev/sda2              26         125      806400    5  Extended
    /dev/sda5              26          50      201568+  83  Linux
    /dev/sda6              51          75      201568+   b  W95 FAT32




    6、fdisk 的退出,用q或者 w;

    其中 q是 不保存退出,w是保存退出;
    Command (m for help): w
    或 
    Command (m for help): q




    7、一个添加分区的例子;

    本例中我们会添加两个200M的主分区,其它为扩展分区,在扩展分区中我们添加两个200M大小的逻辑分区;
    Command (m for help): p 注:列出分区表;

    Disk /dev/sda: 1035 MB, 1035730944 bytes
    256 heads, 63 sectors/track, 125 cylinders
    Units = cylinders of 16128 * 512 = 8257536 bytes

       Device Boot      Start         End      Blocks   Id  System

    Command (m for help): n 注:添加分区;
    Command action
       e   extended
       p   primary partition (1-4)
    p  注:添加主分区;
    Partition number (1-4): 1   注:添加主分区1;
    First cylinder (1-125, default 1):   注:直接回车,主分区1的起始位置;默认为1,默认就好;
    Using default value 1
    Last cylinder or +size or +sizeM or +sizeK (1-125, default 125): +200M   注:指定分区大小,用+200M来指定大小为200M

    Command (m for help): n  注:添加新分区;
    Command action
       e   extended
       p   primary partition (1-4)
    p  注:添加主分区
    Partition number (1-4): 2  注:添加主分区2;
    First cylinder (26-125, default 26):
    Using default value 26
    Last cylinder or +size or +sizeM or +sizeK (26-125, default 125): +200M 注:指定分区大小,用+200M来指定大小为200M

    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    e  注:添加扩展分区;
    Partition number (1-4): 3  注:指定为3 ,因为主分区已经分了两个了,这个也算主分区,从3开始;
    First cylinder (51-125, default 51):  注:直接回车;
    Using default value 51
    Last cylinder or +size or +sizeM or +sizeK (51-125, default 125):   注:直接回车,把其余的所有空间都给扩展分区;
    Using default value 125

    Command (m for help): p

    Disk /dev/sda: 1035 MB, 1035730944 bytes
    256 heads, 63 sectors/track, 125 cylinders
    Units = cylinders of 16128 * 512 = 8257536 bytes

       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1               1          25      201568+  83  Linux
    /dev/sda2              26          50      201600   83  Linux
    /dev/sda3              51         125      604800    5  Extended

    Command (m for help): n
    Command action
       l   logical (5 or over)
       p   primary partition (1-4)
    l  注:添加逻辑分区;
    First cylinder (51-125, default 51):
    Using default value 51
    Last cylinder or +size or +sizeM or +sizeK (51-125, default 125): +200M  注:添加一个大小为200M大小的分区;

    Command (m for help): n
    Command action
       l   logical (5 or over)
       p   primary partition (1-4)
    l  注:添加一个逻辑分区;
    First cylinder (76-125, default 76):
    Using default value 76
    Last cylinder or +size or +sizeM or +sizeK (76-125, default 125): +200M 注:添加一个大小为200M大小的分区;

    Command (m for help): p  列出分区表;

    Disk /dev/sda: 1035 MB, 1035730944 bytes
    256 heads, 63 sectors/track, 125 cylinders
    Units = cylinders of 16128 * 512 = 8257536 bytes

       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1               1          25      201568+  83  Linux
    /dev/sda2              26          50      201600   83  Linux
    /dev/sda3              51         125      604800    5  Extended
    /dev/sda5              51          75      201568+  83  Linux
    /dev/sda6              76         100      201568+  83  Linux
    然后我们根据前面所说通过t指令来改变分区类型;最后不要忘记w保存退出; 
    五、对分区进行格式化,以及加载;
    先提示一下;用 mkfs.bfs mkfs.ext2 mkfs.jfs mkfs.msdos mkfs.vfatmkfs.cramfs mkfs.ext3 mkfs.minix mkfs.reiserfs mkfs.xfs 等命令来格式化分区,比如我想格式化 sda6为ext3文件系统,则输入;
    [root@localhost beinan]# mkfs.ext3 /dev/sda6
    如果我想加载 sda6到目前系统来存取文件,应该有mount 命令,但首先您得建一个挂载目录;比如 /mnt/sda6 ;
    [root@localhost beinan]# mkdir /mnt/sda6
    [root@localhost beinan]# mount /dev/sda6 /mnt/sda6
    [root@localhost beinan]# df -lh
    Filesystem            容量  已用 可用 已用% 挂载点
    /dev/hda8              11G  8.4G  2.0G  81% /
    /dev/shm              236M     0  236M   0% /dev/shm
    /dev/hda10             16G  6.9G  8.3G  46% /mnt/hda10
    /dev/sda6             191M  5.6M  176M   4% /mnt/sda6
    这样我们就能进入 /mnt/sda6目录,然后存取文件了;具体的权限方法,以及mount 更详细的用法,在以后我会专门写一个帖子;在一帖中放下所有的内容实在有点为难;后记:在本文写完后,我还要写另一个分区工具parted;在 Fedora 4.0 中cfdisk 被去掉了;所以不想介绍这个工具;


    展开全文
  • UEFI GPT fdisk是著名GPT fdisk分区工具的UEFI的端口,请参阅http://sourceforge.net/projects/gptfdisk/。 现在,由于该程序直接在UEFI Shell下运行,因此您无需*引导*系统即可转换/编辑分区表。
  • 主要介绍了Linux下的fdisk用法,大家都知道fdisk功能真的很强大,用它可以划分出最复杂的分区,本文重点给大家介绍Linux下的fdisk命令用法,感兴趣的朋友一起看看吧
  • linux平台下各种版本的parted、fdisk源码包下载地址及安装方法链接
  • fdisk移植和编译

    2018-11-28 09:45:25
    fdisk移植和编译,嵌入式下的编译过程!
  • UEFI GPT fdisk 是著名的 GPT fdisk 分区工具的 UEFI 的端口,请参阅 http://sourceforge.net/projects/gptfdisk/ 。 现在,由于该程序直接在 UEFI shell 下运行,因此您无需*引导*系统即可转换/编辑分区表。
  • Linux磁盘扩容 df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 197G 2.3G 195G 2% / devtmpfs 7.8G 0 7.8G 0% /dev tmpfs 7.8G 0 7.8G 0% /dev/shm tmpfs 7.8G 8.5M 7.8G 1% /run ...
  • fdisk分区工具应该早期接触电脑的人都知道,他是一款在dos命令行下面使用的分区工具。 今天下午没事做,把网上所有的fdisk版本找出来分享给大家 分别如下: MSDOS6.22 MSDOS7.10 WinME 牛云飞汉化版 无忧启动汉化版
  • linux下用Fdisk对磁盘进行分区、格式化方法
  • linux脚本用fdisk批量给主机硬盘分区

    千次阅读 2021-06-09 18:18:57
    文章目录说明fdisk分区流程【下面的不能跳过】每个区的大小计算获取使用的命令参数获取方式值提取后如下值提出来以后删除刚才创建的分区脚本测试分区是否正常脚本内容如下执行结果脚本中功能增加增加功能后的代码...

    说明

    • 这个主要适用于:
      • 2T以内的新硬盘分区【含批量】
      • 同一批服务器【/dev/sdb这种名称相同】
      • 需批量服务器之间网络需要打通

    fdisk分区流程【下面的不能跳过】

    这个分区略有难度,需要先熟悉fdisk的分区规则
    如果对fdisk分区不熟悉的,我博客中有fdisk分区的详细说明,可以去我博客中翻翻看熟悉一下过程。

    每个区的大小计算

    • 首先根据自己的需求计算出fdisk的默认容量【必须先计算出这些值】。

    • fdisk中的默认计量单位是:扇区,一个扇区=512 bytes,这个解释起来可能难理解,这个也不需要了解她的原理,所以我不做解释【感兴趣的自己去科普一下】,我只是提一下512的存在,免得你疑惑后面公式中的512是啥数字。

    • 计算公式【以G为单位来进行转换】:#Gx1024x1024x1024÷512,如5G的扇区为:5x1024x1024x1024÷512=10485760

    • 比如,你现在有一块20G的硬盘,需要分6个区,分别是:
      注:分成6个区,需要考虑扩展分区,最终是:3个主分区,剩下3个为扩展分区【默认最多只能建4个主分区】。

      • 1、3G
      • 2、4G
      • 3、5G
      • 4、2G
      • 5、2G
      • 6、剩下的全部容量
        我做很多逻辑分区,只是为了证实每个逻辑分区的起始扇区都需要+2049
    • 根据上面需求中大小计算出其扇区大小,如下
      注:新硬盘的扇区起始位置不是1,而是2048【固定的,任何新硬盘均一样】
      在这里插入图片描述

      • 第一个分区【3G】【sdb1】:
        起始扇区:2048【默认2048起】
        容量扇区:6289408【3x1024x1024x1024/512-2048】
      • 第二个分区【4G】【sdb2】:
        起始扇区:6289409【上一个容量扇区+1】
        容量扇区:14678017【6289409+4x1024x1024x1024/512】
      • 第三个分区【5G】【sdb3】:
        起始扇区:14678018
        容量扇区:25163778
      • 分配剩下全部容量为扩展分区【逻辑分区】【sdb4】:
        前面3个分区为主分区,直接用p即可,但剩下的分区必须放在逻辑分区里面【默认主分区只能有4个】,所以这需要把全部空间分配给扩展分区里面,便于后面可以创建逻辑分区;
        起始扇区:25163779
        容量扇区:+【默认全部】
      • 第四个分区【2G】【sdb5】:
        注意,因为超过4个分区最后一个主分区必须做扩展分区,所以sdb4属于扩展分区名称被占用
        起始扇区:25165827【上个分区结尾+2049,因为逻辑分区需占4k空间】
        容量扇区:29360131
      • 第五个分区【剩余全部容量】【sdb6】
        起始扇区:29360132【上个分区结尾+2049,因为逻辑分区需占4k空间】
        容量扇区:33554436
      • 第六个分区【剩余全部容量】【sdb7】
        起始扇区33556485【上个分区结尾+2049,因为逻辑分区需占4k空间】
        容量扇区:+【默认剩下全部】

    获取使用的命令参数

    获取方式

    • 上面全部容量计算出来以后,在其中一台主机上面用上面数据创建全部分区,并记下全部用到的命令【必须要知道中间用到的参数选项】
    • 全部命令如下
    [root@controll ccx]# fdisk /dev/sdb
    Welcome to fdisk (util-linux 2.23.2).
    
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    
    Command (m for help): n
    Partition type:
       p   primary (0 primary, 0 extended, 4 free)
       e   extended
    Select (default p): p
    Partition number (1-4, default 1): 1
    First sector (2048-41943039, default 2048): 2048
    Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 6289408
    Partition 1 of type Linux and of size 3 GiB is set
    
    Command (m for help): n
    Partition type:
       p   primary (1 primary, 0 extended, 3 free)
       e   extended
    Select (default p): p
    Partition number (2-4, default 2): 2
    First sector (6289409-41943039, default 6291456): 6289409
    Last sector, +sectors or +size{K,M,G} (6289409-41943039, default 41943039): 14678017
    Partition 2 of type Linux and of size 4 GiB is set
    
    Command (m for help): n
    Partition type:
       p   primary (2 primary, 0 extended, 2 free)
       e   extended
    Select (default p): p
    Partition number (3,4, default 3): 3
    First sector (14678018-41943039, default 14680064): 14678018
    Last sector, +sectors or +size{K,M,G} (14678018-41943039, default 41943039): 25163778
    Partition 3 of type Linux and of size 5 GiB is set
    
    Command (m for help): n
    Partition type:
       p   primary (3 primary, 0 extended, 1 free)
       e   extended
    Select (default e): e
    Selected partition 4
    First sector (25163779-41943039, default 25165824): 25163779
    Last sector, +sectors or +size{K,M,G} (25163779-41943039, default 41943039): +
    Using default value 41943039
    Partition 4 of type Extended and of size 8 GiB is set
    
    Command (m for help): n
    All primary partitions are in use
    Adding logical partition 5
    First sector (25165827-41943039, default 25167872): 25165827
    Last sector, +sectors or +size{K,M,G} (25165827-41943039, default 41943039): 29360131
    Partition 5 of type Linux and of size 2 GiB is set
    
    Command (m for help): n
    All primary partitions are in use
    Adding logical partition 6
    First sector (29362180-41943039, default 29364224): 29362180
    Last sector, +sectors or +size{K,M,G} (29362180-41943039, default 41943039): 33554436
    Partition 6 of type Linux and of size 2 GiB is set
    
    Command (m for help): n
    All primary partitions are in use
    Adding logical partition 7
    First sector (33556485-41943039, default 33558528): 33556485
    Last sector, +sectors or +size{K,M,G} (33556485-41943039, default 41943039): +
    Using default value 41943039
    Partition 7 of type Linux and of size 4 GiB is set
    
    Command (m for help): p
    
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x0ab2846a
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048     6289408     3143680+  83  Linux
    /dev/sdb2         6289409    14678017     4194304+  83  Linux
    /dev/sdb3        14678018    25163778     5242880+  83  Linux
    /dev/sdb4        25163779    41943039     8389630+   5  Extended
    /dev/sdb5        25165827    29360131     2097152+  83  Linux
    /dev/sdb6        29362180    33554436     2096128+  83  Linux
    /dev/sdb7        33556485    41943039     4193277+  83  Linux
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    [root@controll ccx]# 
    

    值提取后如下

    下面值我就不做解释了,看不懂的去看一下我fdisk的文章
    注:这个里面不能有空白行,值中间不能漏,不能多,不能出错,扇区值最好复制上面命令中的值。

    n
    p
    1
    2048
    6289408
    n
    p
    2
    6289409
    14678017
    n
    p
    3
    14678018
    25163778
    n
    e
    25163779
    +
    n
    25165827
    29360131
    n
    29362180
    33554436
    n
    33556485
    +
    p
    w
    

    值提出来以后删除刚才创建的分区

    直接d回车即可默认按顺序删除【重复该步骤,直到分区被全部删除】

    [root@controll ccx]# fdisk /dev/sdb
    Welcome to fdisk (util-linux 2.23.2).
    
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    
    Command (m for help): p
    
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x0ab2846a
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048     6289408     3143680+  83  Linux
    /dev/sdb2         6289409    14678017     4194304+  83  Linux
    /dev/sdb3        14678018    25163778     5242880+  83  Linux
    /dev/sdb4        25163779    41943039     8389630+   5  Extended
    /dev/sdb5        25165827    29360131     2097152+  83  Linux
    /dev/sdb6        29362180    33554436     2096128+  83  Linux
    /dev/sdb7        33556485    41943039     4193277+  83  Linux
    
    Command (m for help): d
    Partition number (1-7, default 7): 
    Partition 7 is deleted
    
    Command (m for help): d
    Partition number (1-6, default 6): 
    Partition 6 is deleted
    
    Command (m for help): d
    Partition number (1-5, default 5): 
    Partition 5 is deleted
    
    Command (m for help): d
    Partition number (1-4, default 4): 
    Partition 4 is deleted
    
    Command (m for help): d
    Partition number (1-3, default 3): 
    Partition 3 is deleted
    
    Command (m for help): d
    Partition number (1,2, default 2): 
    Partition 2 is deleted
    
    Command (m for help): d
    Selected partition 1
    Partition 1 is deleted
    
    Command (m for help): 
    Command (m for help): p
    
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x0ab2846a
    
       Device Boot      Start         End      Blocks   Id  System
    
    Command (m for help): 
    

    脚本测试分区是否正常

    脚本内容如下

    注:下面的/dev/sdb务必要根据实际情况更换盘符信息,这玩意是不可逆的,搞错盘符可能会导致现有/dev/sdb盘的数据丢失。

    [root@controll ccx]# cat disk.sh
    #!/bin/bash
    # 下面的/dev/sdb更改为你硬盘的实际盘符
    fdisk /dev/sdb << EOF
    n
    p
    1
    2048
    6289408
    n
    p
    2
    6289409
    14678017
    n
    p
    3
    14678018
    25163778
    n
    e
    25163779
    +
    n
    25165827
    29360131
    n
    29362180
    33554436
    n
    33556485
    +
    p
    w
    EOF
    

    执行结果

    成功,完美。

    [root@controll ccx]# sh disk.sh
    Welcome to fdisk (util-linux 2.23.2).
    
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    
    Command (m for help): Partition type:
       p   primary (0 primary, 0 extended, 4 free)
       e   extended
    Select (default p): Partition number (1-4, default 1): First sector (2048-41943039, default 2048): Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): Partition 1 of type Linux and of size 3 GiB is set
    
    Command (m for help): Partition type:
       p   primary (1 primary, 0 extended, 3 free)
       e   extended
    Select (default p): Partition number (2-4, default 2): First sector (6289409-41943039, default 6291456): Last sector, +sectors or +size{K,M,G} (6289409-41943039, default 41943039): Partition 2 of type Linux and of size 4 GiB is set
    
    Command (m for help): Partition type:
       p   primary (2 primary, 0 extended, 2 free)
       e   extended
    Select (default p): Partition number (3,4, default 3): First sector (14678018-41943039, default 14680064): Last sector, +sectors or +size{K,M,G} (14678018-41943039, default 41943039): Partition 3 of type Linux and of size 5 GiB is set
    
    Command (m for help): Partition type:
       p   primary (3 primary, 0 extended, 1 free)
       e   extended
    Select (default e): Selected partition 4
    First sector (25163779-41943039, default 25165824): Last sector, +sectors or +size{K,M,G} (25163779-41943039, default 41943039): Using default value 41943039
    Partition 4 of type Extended and of size 8 GiB is set
    
    Command (m for help): All primary partitions are in use
    Adding logical partition 5
    First sector (25165827-41943039, default 25167872): Last sector, +sectors or +size{K,M,G} (25165827-41943039, default 41943039): Partition 5 of type Linux and of size 2 GiB is set
    
    Command (m for help): All primary partitions are in use
    Adding logical partition 6
    First sector (29362180-41943039, default 29364224): Last sector, +sectors or +size{K,M,G} (29362180-41943039, default 41943039): Partition 6 of type Linux and of size 2 GiB is set
    
    Command (m for help): All primary partitions are in use
    Adding logical partition 7
    First sector (33556485-41943039, default 33558528): Last sector, +sectors or +size{K,M,G} (33556485-41943039, default 41943039): Using default value 41943039
    Partition 7 of type Linux and of size 4 GiB is set
    
    Command (m for help): 
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x0ab2846a
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048     6289408     3143680+  83  Linux
    /dev/sdb2         6289409    14678017     4194304+  83  Linux
    /dev/sdb3        14678018    25163778     5242880+  83  Linux
    /dev/sdb4        25163779    41943039     8389630+   5  Extended
    /dev/sdb5        25165827    29360131     2097152+  83  Linux
    /dev/sdb6        29362180    33554436     2096128+  83  Linux
    /dev/sdb7        33556485    41943039     4193277+  83  Linux
    
    Command (m for help): The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    [root@controll ccx]# partprobe 
    Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
    [root@controll ccx]# lsblk
    NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda               8:0    0   200G  0 disk 
    ├─sda1            8:1    0     1G  0 part /boot
    └─sda2            8:2    0   199G  0 part 
      ├─centos-root 253:0    0    50G  0 lvm  /
      ├─centos-swap 253:1    0  15.8G  0 lvm  [SWAP]
      └─centos-home 253:2    0 133.2G  0 lvm  /home
    sdb               8:16   0    20G  0 disk 
    ├─sdb1            8:17   0     3G  0 part 
    ├─sdb2            8:18   0     4G  0 part 
    ├─sdb3            8:19   0     5G  0 part 
    ├─sdb4            8:20   0     1K  0 part 
    ├─sdb5            8:21   0     2G  0 part 
    ├─sdb6            8:22   0     2G  0 part 
    └─sdb7            8:23   0     4G  0 part 
    sr0              11:0    1   4.3G  0 rom  
    [root@controll ccx]# 
    

    脚本中功能增加

    • 上面脚本仅仅是进行分区,需要加啥功能自己加在最后面即可,如我这新增分区的格式改为lvm,则我需要在脚本最后面加上这些代码即可【任何功能都应在分完区以后添加】
      注:修改的时候扩展分区不能改格式的,应跳过【如我是第4个做的逻辑分区,则sdb4【4】不能改格式,应跳过】

    增加功能后的代码如下

    [root@controll ccx]# cat disk.sh
    #!/bin/bash
    
    fdisk /dev/sdb << EOF
    n
    p
    1
    2048
    6289408
    n
    p
    2
    6289409
    14678017
    n
    p
    3
    14678018
    25163778
    n
    e
    25163779
    +
    n
    25165827
    29360131
    n
    29362180
    33554436
    n
    33556485
    +
    p
    t
    1
    8e
    t
    2
    8e
    t
    3
    8e
    t
    5
    8e
    t
    6
    8e
    t
    7
    8e
    p
    w
    EOF
    [root@controll ccx]# 
    

    执行结果

    如果之前执行过,应先去删除已经创建的分区再执行。

    [root@controll ccx]# sh disk.sh
    Welcome to fdisk (util-linux 2.23.2).
    
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    
    Command (m for help): Partition type:
       p   primary (0 primary, 0 extended, 4 free)
       e   extended
    Select (default p): Partition number (1-4, default 1): First sector (2048-41943039, default 2048): Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): Partition 1 of type Linux and of size 3 GiB is set
    
    Command (m for help): Partition type:
       p   primary (1 primary, 0 extended, 3 free)
       e   extended
    Select (default p): Partition number (2-4, default 2): First sector (6289409-41943039, default 6291456): Last sector, +sectors or +size{K,M,G} (6289409-41943039, default 41943039): Partition 2 of type Linux and of size 4 GiB is set
    
    Command (m for help): Partition type:
       p   primary (2 primary, 0 extended, 2 free)
       e   extended
    Select (default p): Partition number (3,4, default 3): First sector (14678018-41943039, default 14680064): Last sector, +sectors or +size{K,M,G} (14678018-41943039, default 41943039): Partition 3 of type Linux and of size 5 GiB is set
    
    Command (m for help): Partition type:
       p   primary (3 primary, 0 extended, 1 free)
       e   extended
    Select (default e): Selected partition 4
    First sector (25163779-41943039, default 25165824): Last sector, +sectors or +size{K,M,G} (25163779-41943039, default 41943039): Using default value 41943039
    Partition 4 of type Extended and of size 8 GiB is set
    
    Command (m for help): All primary partitions are in use
    Adding logical partition 5
    First sector (25165827-41943039, default 25167872): Last sector, +sectors or +size{K,M,G} (25165827-41943039, default 41943039): Partition 5 of type Linux and of size 2 GiB is set
    
    Command (m for help): All primary partitions are in use
    Adding logical partition 6
    First sector (29362180-41943039, default 29364224): Last sector, +sectors or +size{K,M,G} (29362180-41943039, default 41943039): Partition 6 of type Linux and of size 2 GiB is set
    
    Command (m for help): All primary partitions are in use
    Adding logical partition 7
    First sector (33556485-41943039, default 33558528): Last sector, +sectors or +size{K,M,G} (33556485-41943039, default 41943039): Using default value 41943039
    Partition 7 of type Linux and of size 4 GiB is set
    
    Command (m for help): 
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x0ab2846a
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048     6289408     3143680+  83  Linux
    /dev/sdb2         6289409    14678017     4194304+  83  Linux
    /dev/sdb3        14678018    25163778     5242880+  83  Linux
    /dev/sdb4        25163779    41943039     8389630+   5  Extended
    /dev/sdb5        25165827    29360131     2097152+  83  Linux
    /dev/sdb6        29362180    33554436     2096128+  83  Linux
    /dev/sdb7        33556485    41943039     4193277+  83  Linux
    
    Command (m for help): Partition number (1-7, default 7): Hex code (type L to list all codes): Changed type of partition 'Linux' to 'Linux LVM'
    
    Command (m for help): Partition number (1-7, default 7): Hex code (type L to list all codes): Changed type of partition 'Linux' to 'Linux LVM'
    
    Command (m for help): Partition number (1-7, default 7): Hex code (type L to list all codes): Changed type of partition 'Linux' to 'Linux LVM'
    
    Command (m for help): Partition number (1-7, default 7): Hex code (type L to list all codes): 
    You cannot change a partition into an extended one or vice versa.
    Delete it first.
    
    Type of partition 4 is unchanged: Extended
    
    Command (m for help): Partition number (1-7, default 7): Hex code (type L to list all codes): Changed type of partition 'Linux' to 'Linux LVM'
    
    Command (m for help): Partition number (1-7, default 7): Hex code (type L to list all codes): Changed type of partition 'Linux' to 'Linux LVM'
    
    Command (m for help): Partition number (1-7, default 7): Hex code (type L to list all codes): Changed type of partition 'Linux' to 'Linux LVM'
    
    Command (m for help): 
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x0ab2846a
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048     6289408     3143680+  8e  Linux LVM
    /dev/sdb2         6289409    14678017     4194304+  8e  Linux LVM
    /dev/sdb3        14678018    25163778     5242880+  8e  Linux LVM
    /dev/sdb4        25163779    41943039     8389630+   5  Extended
    /dev/sdb5        25165827    29360131     2097152+  8e  Linux LVM
    /dev/sdb6        29362180    33554436     2096128+  8e  Linux LVM
    /dev/sdb7        33556485    41943039     4193277+  8e  Linux LVM
    
    Command (m for help): The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    [root@controll ccx]# 
    

    功能修改后的效果展示

    功能修改后的效果就是下图这样的【如果要划lv,这格式必须改为这个】
    在这里插入图片描述

    fdisk遍历批量分区

    遍历前提条件

    • 4个条件

      • 必须是同一批服务器【或确保网络互通即可】
      • /dev/sdb这种名称必须相同
      • 硬盘大小必须一致
      • 必须是新硬盘
    • 如果上述不确定的,先跑个批量脚本查看每台主机的该硬盘的大小和是否为新硬盘。

    • 脚本执行后,该操作是不可逆的,务必要确定上面信息。

    • 如,跑的脚本是/dev/sdb,如果某台服务器上的/dev/sdb是正在使用中的硬盘,可能会导致该服务器上的/dev/sdb中的硬盘丢失

    遍历脚本代码

    说明

    • 下面功能代码和遍历执行代码均放一个服务器上的同一目录中,分2个文件存放。
    • 可以先手动执行功能代码,没报错以后,再执行遍历执行代码。

    功能代码

    • 这里面放的是分区的代码【代码最后面其实还可以放做lv的代码】【做lv流程是纯代码,过于简单,这就不做演示了】
    • 注:如果想看分区过程,将下面代码中的fdisk $diskname << EOF>/dev/null改为:fdisk $diskname << EOF
    [root@controll ccx]# pwd
    /ccx
    [root@controll ccx]# cat disk.sh 
    #!/bin/bash
    diskname=/dev/sdb
    fdisk $diskname << EOF > /dev/null
    n
    p
    1
    2048
    6289408
    n
    p
    2
    6289409
    14678017
    n
    p
    3
    14678018
    25163778
    n
    e
    25163779
    +
    n
    25165827
    29360131
    n
    29362180
    33554436
    n
    33556485
    +
    p
    t
    1
    8e
    t
    2
    8e
    t
    3
    8e
    t
    4
    8e
    t
    5
    8e
    t
    6
    8e
    t
    7
    8e
    p
    w
    EOF
    partprobe
    lsblk|grep sdb
    [root@controll ccx]#
    

    遍历执行代码

    • 这批服务器是没有免密登陆的,所以ip存放文件中的格式为:ip 密码
    • 这个执行流程如下:
      • 登陆
      • scp拷贝功能脚本到当前服务器
      • 查看是否拷贝成功
      • 执行功能代码
      • 删除功能代码文件
      • 退出登陆
    [root@controll ccx]# cat disk_send.sh 
    #/bin/bash
    
    file=/ccx/iplist.txt
    cat $file | while read ip ; do
    ippaswd=($ip)
    /usr/bin/expect<<EOF
    spawn ssh root@${ippaswd[0]}
    expect {
    "*yes/no" { send "yes\r"; exp_continue}
    "*assword:" { send "${ippaswd[1]}\r" } 
    }
    expect "#"
    # 下面为功能代码存放ip和路径
    send "scp 192.168.59.133:/ccx/disk.sh /root\r"
    expect {
    "*yes/no" { send "yes\r"; exp_continue}
    "*assword:" { send "${ippaswd[1]}\r" } 
    }
    expect "#"
    send "ls /root | grep disk\r"
    send "sh /root/disk.sh\r"
    send "rm -rf /root/disk.sh\r"
    send "exit\r"
    expect eof
    EOF
    done
    [root@controll ccx]#  
    [root@controll ccx]# cat iplist.txt 
    192.168.59.128 root
    192.168.59.129 root
    192.168.59.130 root
    [root@controll ccx]# 
    

    脚本执行

    • 注意看执行结果是否所有sdb都创建成功【如果创建失败的看下发创建失败处理过程】
    • 执行的是遍历执行代码
      执行方式:sh disk_send.sh
    [root@controll ccx]# sh disk_send.sh 
    spawn ssh root@192.168.59.128
    root@192.168.59.128's password: 
    Last login: Thu Jun 10 20:51:38 2021 from 192.168.59.133
    [root@centso76_1 ~]# scp 192.168.59.133:/ccx/disk.sh /root
    The authenticity of host '192.168.59.133 (192.168.59.133)' can't be established.
    ECDSA key fingerprint is SHA256:ulUqmZhBWg273m620MpAzoq6iPZEDU2ULoPjfiXTGDc.
    ECDSA key fingerprint is MD5:ca:60:fa:17:0c:09:5d:4b:39:c5:95:7d:20:54:c5:49.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.59.133' (ECDSA) to the list of known hosts.
    Password: 
    disk.sh                                                                                                                                                                                                 100%  281   265.0KB/s   00:00    
    [root@centso76_1 ~]# ls /root | grep disk
    disk.sh
    [root@centso76_1 ~]# sh /root/disk.sh
    sdb               8:16   0   20G  0 disk 
    ├─sdb1            8:17   0    3G  0 part 
    ├─sdb2            8:18   0    4G  0 part 
    ├─sdb3            8:19   0    5G  0 part 
    ├─sdb4            8:20   0    1K  0 part 
    ├─sdb5            8:21   0    2G  0 part 
    ├─sdb6            8:22   0    2G  0 part 
    └─sdb7            8:23   0    4G  0 part 
    [root@centso76_1 ~]# rm -rf /root/disk.sh
    [root@centso76_1 ~]# exit
    登出
    Connection to 192.168.59.128 closed.
    spawn ssh root@192.168.59.129
    root@192.168.59.129's password: 
    Last login: Thu Jun 10 08:56:58 2021 from 192.168.59.133
    [root@centos76_2 ~]# scp 192.168.59.133:/ccx/disk.sh /root
    The authenticity of host '192.168.59.133 (192.168.59.133)' can't be established.
    ED25519 key fingerprint is SHA256:0uTcB4pn/p0X72gZrtG4b7MrgLJJL9Q8Gr1TrDNFThA.
    This key is not known by any other names
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '192.168.59.133' (ED25519) to the list of known hosts.
    (root@192.168.59.133) Password: 
    disk.sh                                                                                                                                                                                                 100%  281   226.4KB/s   00:00    
    [root@centos76_2 ~]# ls /root | grep disk
    disk.sh
    [root@centos76_2 ~]# sh /root/disk.sh
    sdb               8:16   0   20G  0 disk 
    ├─sdb1            8:17   0    3G  0 part 
    ├─sdb2            8:18   0    4G  0 part 
    ├─sdb3            8:19   0    5G  0 part 
    ├─sdb4            8:20   0    1K  0 part 
    ├─sdb5            8:21   0    2G  0 part 
    ├─sdb6            8:22   0    2G  0 part 
    └─sdb7            8:23   0    4G  0 part 
    [root@centos76_2 ~]# rm -rf /root/disk.sh
    [root@centos76_2 ~]# exit
    logout
    Connection to 192.168.59.129 closed.
    spawn ssh root@192.168.59.130
    (root@192.168.59.130) Password: 
    Last login: Thu Jun 10 20:52:08 2021 from 192.168.59.133
    [root@centos76_3 ~]# scp 192.168.59.133:/ccx/disk.sh /root
    The authenticity of host '192.168.59.133 (192.168.59.133)' can't be established.
    ECDSA key fingerprint is SHA256:ulUqmZhBWg273m620MpAzoq6iPZEDU2ULoPjfiXTGDc.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '192.168.59.133' (ECDSA) to the list of known hosts.
    Password: 
    disk.sh                                                                                                                                                                                                 100%  281   181.3KB/s   00:00    
    [root@centos76_3 ~]# ls /root | grep disk
    disk.sh
    [root@centos76_3 ~]# sh /root/disk.sh
    Do you really want to quit? sdb               8:16   0   20G  0 disk 
    ├─sdb1            8:17   0    3G  0 part 
    ├─sdb2            8:18   0    4G  0 part 
    ├─sdb3            8:19   0    5G  0 part 
    ├─sdb4            8:20   0    1K  0 part 
    └─sdb5            8:21   0    2G  0 part 
    [root@centos76_3 ~]# rm -rf /root/disk.sh
    [root@centos76_3 ~]# exit
    logout
    Connection to 192.168.59.130 closed.
    [root@controll ccx]# 
    

    批量中某一台创建失败处理方法

    • 注:我把执行过程给放到/dev/null里面了,仅展示了sdb的结果,否则执行过程中内容会非常长,所以就需要看结果是否均正常就可以了,就如上面的最后一台主机名是centos76_3的虚机,结果就不对劲,sdb6和sdb7没有创建成功;
    • 处理方法
      • 登陆到该主机
      • 手动删除已经分区的内容
      • 拷贝上面的“功能代码“过来
      • fdisk $diskname << EOF>/dev/null改为:fdisk $diskname << EOF 【为了看过程】
      • 手动执行该脚本
    • 删除已分区的内容
    [root@centos76_3 ccx]# fdisk /dev/sdb #删除已经配置完成的
    Welcome to fdisk (util-linux 2.23.2).
    
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    Command (m for help): d
    Partition number (1-5, default 5): 
    Partition 5 is deleted
    
    Command (m for help): d
    Partition number (1-4, default 4): 
    Partition 4 is deleted
    
    Command (m for help): d
    Partition number (1-3, default 3): 
    Partition 3 is deleted
    
    Command (m for help): d
    Partition number (1,2, default 2): 
    Partition 2 is deleted
    
    Command (m for help): d
    Selected partition 1
    Partition 1 is deleted
    
    Command (m for help): 
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    [root@centos76_3 ccx]#
    
    • 拷贝功能代码,修改内容并手动执行
      结果没有问题,可能是因为我讲过程输出到/dev/null中导致最后一台执行过程出错了吧。
    [root@centos76_3 ccx]# scp 192.168.59.133:/ccx/disk.sh /ccx
    Password: 
    disk.sh                             100%  281   271.8KB/s   00:00
    [root@centos76_3 ccx]# cat disk.sh | grep fdisk
    fdisk $diskname << EOF
    [root@centos76_3 ccx]# 
    [root@centos76_3 ccx]# sh disk.sh 
    Welcome to fdisk (util-linux 2.23.2).
    
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    
    Command (m for help): Partition type:
       p   primary (0 primary, 0 extended, 4 free)
       e   extended
    Select (default p): Partition number (1-4, default 1): First sector (2048-41943039, default 2048): Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): Partition 1 of type Linux and of size 3 GiB is set
    
    Command (m for help): Partition type:
       p   primary (1 primary, 0 extended, 3 free)
       e   extended
    Select (default p): Partition number (2-4, default 2): First sector (6289409-41943039, default 6291456): Last sector, +sectors or +size{K,M,G} (6289409-41943039, default 41943039): Partition 2 of type Linux and of size 4 GiB is set
    
    Command (m for help): Partition type:
       p   primary (2 primary, 0 extended, 2 free)
       e   extended
    Select (default p): Partition number (3,4, default 3): First sector (14678018-41943039, default 14680064): Last sector, +sectors or +size{K,M,G} (14678018-41943039, default 41943039): Partition 3 of type Linux and of size 5 GiB is set
    
    Command (m for help): Partition type:
       p   primary (3 primary, 0 extended, 1 free)
       e   extended
    Select (default e): Selected partition 4
    First sector (25163779-41943039, default 25165824): Last sector, +sectors or +size{K,M,G} (25163779-41943039, default 41943039): Using default value 41943039
    Partition 4 of type Extended and of size 8 GiB is set
    
    Command (m for help): All primary partitions are in use
    Adding logical partition 5
    First sector (25165827-41943039, default 25167872): Last sector, +sectors or +size{K,M,G} (25165827-41943039, default 41943039): Partition 5 of type Linux and of size 2 GiB is set
    
    Command (m for help): All primary partitions are in use
    Adding logical partition 6
    First sector (29362180-41943039, default 29364224): Last sector, +sectors or +size{K,M,G} (29362180-41943039, default 41943039): Partition 6 of type Linux and of size 2 GiB is set
    
    Command (m for help): All primary partitions are in use
    Adding logical partition 7
    First sector (33556485-41943039, default 33558528): Last sector, +sectors or +size{K,M,G} (33556485-41943039, default 41943039): Using default value 41943039
    Partition 7 of type Linux and of size 4 GiB is set
    
    Command (m for help): 
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x09cb3aa0
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048     6289408     3143680+  83  Linux
    /dev/sdb2         6289409    14678017     4194304+  83  Linux
    /dev/sdb3        14678018    25163778     5242880+  83  Linux
    /dev/sdb4        25163779    41943039     8389630+   5  Extended
    /dev/sdb5        25165827    29360131     2097152+  83  Linux
    /dev/sdb6        29362180    33554436     2096128+  83  Linux
    /dev/sdb7        33556485    41943039     4193277+  83  Linux
    
    Command (m for help): Partition number (1-7, default 7): Hex code (type L to list all codes): Changed type of partition 'Linux' to 'Linux LVM'
    
    Command (m for help): Partition number (1-7, default 7): Hex code (type L to list all codes): Changed type of partition 'Linux' to 'Linux LVM'
    
    Command (m for help): Partition number (1-7, default 7): Hex code (type L to list all codes): Changed type of partition 'Linux' to 'Linux LVM'
    
    Command (m for help): Partition number (1-7, default 7): Hex code (type L to list all codes): 
    You cannot change a partition into an extended one or vice versa.
    Delete it first.
    
    Type of partition 4 is unchanged: Extended
    
    Command (m for help): Partition number (1-7, default 7): Hex code (type L to list all codes): Changed type of partition 'Linux' to 'Linux LVM'
    
    Command (m for help): Partition number (1-7, default 7): Hex code (type L to list all codes): Changed type of partition 'Linux' to 'Linux LVM'
    
    Command (m for help): Partition number (1-7, default 7): Hex code (type L to list all codes): Changed type of partition 'Linux' to 'Linux LVM'
    
    Command (m for help): 
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x09cb3aa0
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048     6289408     3143680+  8e  Linux LVM
    /dev/sdb2         6289409    14678017     4194304+  8e  Linux LVM
    /dev/sdb3        14678018    25163778     5242880+  8e  Linux LVM
    /dev/sdb4        25163779    41943039     8389630+   5  Extended
    /dev/sdb5        25165827    29360131     2097152+  8e  Linux LVM
    /dev/sdb6        29362180    33554436     2096128+  8e  Linux LVM
    /dev/sdb7        33556485    41943039     4193277+  8e  Linux LVM
    
    Command (m for help): The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    sdb               8:16   0   20G  0 disk 
    ├─sdb1            8:17   0    3G  0 part 
    ├─sdb2            8:18   0    4G  0 part 
    ├─sdb3            8:19   0    5G  0 part 
    ├─sdb4            8:20   0    1K  0 part 
    ├─sdb5            8:21   0    2G  0 part 
    ├─sdb6            8:22   0    2G  0 part 
    └─sdb7            8:23   0    4G  0 part 
    [root@centos76_3 ccx]#
    
    展开全文
  • oracle中fdisk 导致的ASM磁盘数据丢失 有需要的朋友可参考一下
  • 实例解说Linux中fdisk分区使用方法实例解说Linux中fdisk分区使用方法
  • 文章目录磁盘结构介绍分区类型说明磁盘管理说明fdisk -l 参数详解MBR分区管理图形化分区命令行模式命令格式化硬盘为gpt和mbr说明【了解就行】fdisk命令行分区参数介绍创建分区【含扇区解释】主分区和扩展分区说明...

    磁盘结构介绍

    • 一个磁盘由盘片和磁道组成,磁道有无数个扇区,一个扇区512Byte
      注:硬盘最小单位才是扇区,并不是最小存储单位-block(4k)
      在这里插入图片描述

    分区类型说明

    • 分区的类型为3类:

      • 主分区:从硬盘上直接划分出来的,可以直接格式化使用的分区
      • 扩展分区:直接从硬盘上划分,但是不直接格式化使用,而是在上面创建多个小分区
      • 逻辑分区:逻辑分区就是扩展分区创建的小分区
    • 分区表,只记录 主分区+扩展分区,每记录一个分区消耗16B

    • 主分区扩展分区<=4 且扩展分区<=1

    • 如果想划分多个分区,至少你得留一定的空间作为扩展分区,在上面划分更多个逻辑分区

    • MBR和GPT

      • MBR–>兼容性好,但是不能用于>2T硬盘
      • GPT–>可以有128个主分区,兼容性差一些,但是可以用大大于2T的硬盘
      • 决定使用MBR结构还是GPT结构,这个选择叫做“初始化磁盘标签”
        fdisk–>mbr结构
        gdisg–>gpt结构
        parted–>兼而有之

    磁盘管理说明

    如果输入fdisk -l命令没有找到新的磁盘,按下面步骤操作
    1)进入到cd /sys/class/scsi_host/
    2)echo "---" > host0/scan #接口扫描新加磁盘即可,如果输入命令还是没有找到则将host0改为host1、host2都试试

    fdisk -l 参数详解

    我们执行fdsikl -l的时候,会看到一个硬盘的全部信息如下:

    [root@controll ccx]# fdisk -l
    Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x00068e46
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048     2099199     1048576   83  Linux
    /dev/sda2         2099200   419430399   208665600   8e  Linux LVM
    
    • 下面分开讲解前面4行内容:

      • 第一行:
        Disk /dev/sda【硬盘名称】: 214.7 GB【大小】, 214748364800 bytes【字节】, 419430400 sectors【扇区】
        其中一个扇区等于512个字节,我们硬盘的最小单位是扇区。上面的214其实是不准的,真实的硬盘大小为:214748364800/1024/1024/1024=200G【1G=1024M,1M=1024k,1K=1024bytes】
      • 第二行:
        Units = sectors of 1 * 512 = 512 bytes【柱面单元大小 (一个扇区作为一个柱面,一个扇区大小为512 bytes,即0.5KB】
      • 第三行:
        Sector size (logical/physical): 512 bytes / 512 bytes 【扇区大小 ,逻辑/物理都为 512 bytes】
      • 第四行:
        I/O size (minimum/optimal): 512 bytes / 512 bytes 【IO最小/最优 均为 512bytes 】
    • 注:下面boot中系统盘前面会有*,其他无内容
      最后一行 实际大小 是我自己新增的,用来展示换算单位

    设备boot起始柱面结束柱面分区大小分区类型对分区类型的解析实际大小
    /dev/sda1*20482099199104857683Linux1G
    /dev/sda220992004194303992086656008eLinux LVM198.999G

    分区大小转换计算方法

    方式一

    • 以上面的/dev/sda1和/sda2为例
    • 直接以分区大小计算,这个大小显示的是扇区数据【Kb】,所以公式为:分区大小【Blocks】/1024/1024
    • 如上的/dev/sda1为:1048576/1024/1024=1【反过来换算就是:G*1024*1024=扇区大小【最简单的方式就是估算,小数点向前移动6位即为Gb大小】
    • 如上的/dev/sda2为:208665600/1024/1024=198.999【反过来换算就是:G*1024*1024=扇区大小【最简单的方式就是估算,小数点向前移动6位即为Gb大小】

    方式二

    • 以上面的/dev/sda1和/sda2为例
    • 这个是以存储单位【bytes】计算,上面说过,一个扇区为512Bytes,所以公式为:结束扇区【end】-起始扇区【start】/1024/1024/1024*512【这种方式实用于新硬盘分区时硬盘容量大小(Gb)精确计算】
    • 如上的/dev/sda1为:2099199-2048/1024/1024/1024*512=0.99999【反过来换算就是:G*1024*1024*1024/512=Bytes大小【GxMxKxBytes÷扇区】
    • 如上的/dev/sda2为:419430399-2099200/1024/1024/1024*512=198.999【反过来换算就是:G*1024*1024*1024/512=Bytes大小【GxMxKxBytes÷扇区】

    MBR分区管理

    有2种分区方法,图形化和命令行(不建议用图形化分区)

    图形化分区

    点击菜单栏-工具-磁盘-点击新添加磁盘-设置中格式化
    在这里插入图片描述
    分区中-选择格式化为MBR格式还是GPT格式-选好后点击格式化即可;
    在这里插入图片描述

    命令行模式

    命令格式化硬盘为gpt和mbr说明【了解就行】

    • 格式化为gpt格式:parted 硬盘设备名(lsblk查看) mklabel格式(gpt) , 会提示格式化后数据会丢失 输入yes即可:
      在这里插入图片描述

    • 如果不要提示 加上参数-s 即可:
      在这里插入图片描述

    • 取消之前格式化的格式: parted -s 硬盘设备名 mklabel loop:
      在这里插入图片描述

    • 如果要格式化大于2T的文件,参考文档:
      linux大于2T磁盘分区方法(parted分区方法说明)

    • 格式化为mbr格式:parted 硬盘设备名(lsblk查看) mklabel msdos , 会提示格式化后数据会丢失 输入yes即可:
      在这里插入图片描述

    fdisk命令行分区

    • fdisk -l:查看所有磁盘信息
    • fdisk -l 硬盘设备名 :查看单独的磁盘信息 如:fdisk -l /dev/sdb2
    • mbr结构(DOS)创建分区fdisk 分区磁盘设备名, 输入m 获取帮助
      在这里插入图片描述

    参数介绍

    • fdisk 分区磁盘设备名, 输入m回车 即可看到下列字母的详细介绍

      • d:删除一个分区
      • l(L):列出磁盘类型
      • m:显示当前菜单
      • n:新划一个分区
      • p:打印分区表
      • q:不保存退出
      • w:保存提出
      • t:转换类型
    • 如果没有新分区直接p打印分区表是空白的:
      在这里插入图片描述

    创建分区【含扇区解释】

    • fdisk 分区磁盘设备名,如:fdisk /dev/sdb2
    • 开始新化分区 n
      • 选择主分区或逻辑分区,前3个一般选主分区,所以输入:p
      • 起始扇区默认回车即可【默认2048,也可以手动输入2048指定的】
      • 第二次就是容量扇区,直接输入+#G即可
        注:分区大小本身是以扇区来计算的,一个扇区0.5k,所以如果需要划分2G,就要慢慢推算扇区大小:2048(2g大小)+2(2g数量)*1024(M)*1024(k)*2(扇区)-1(起始位)【这仅仅是第一个分区的计算方式】,很麻烦,所以直接 +#G 即可
        在这里插入图片描述

    我们划分区的时候,一般是默认起始扇区的(直接回车就是默认),所以建立多个之间并不会有空隙,如,第一块建了2G,第一块的结尾+1就是第二块的开始,但如果我们手动指定扇区了,就是并不是以第一块结尾+1为起始扇区,这里留了8个扇区(0.5*8=4k),这时候再建第三快分区的时候,如果是默认起始扇区,就是以第一次留下的扇区为起始扇区,在划分2个G,就会提示超出范围,因为这时候的扇区是第一块分区结束和第二块分区起始之间的空间,起始和结尾都直接回车(默认,如果结尾直接回车就是全部空间都给该分区),就会发现 实际只能分4K大小,所以,我们划分区手动指定扇区的时候,一定要注意起始扇区: (图中第一块扇区结尾有误:是4196351)
    所以这时候就需要用p查看第二块的结尾扇区,然后+1 就是新的起始扇区。
    在这里插入图片描述

    主分区和扩展分区说明

    • 假如我们有一个20G的硬盘,我们4块都划分为2G的主分区,那么剩下的12G就没法使用了:
      在这里插入图片描述
      在这里插入图片描述
    • 所以我们需要把最后一块建成扩展分区 e (如果已经创建了4个主分区,d 删除第4个分区),并且全部空间都分给扩展分区(结束扇区直接回车即可),MBR总分区<=4,主分区<=4(就是可以全部分为主分区),扩展分区<=1:
      在这里插入图片描述
    • 从扩展分区中继续建的属于逻辑分区,逻辑分区是不询问输入p或e的,直接从5开始累加:
      在这里插入图片描述
      在这里插入图片描述

    分区类型转换

    • 分区根据用途还可以进行一些分类:有的是普通的linux分区→不管是逻辑分区还是主分区都可以直接格式化使用 , 但有的分区作为交换分区,有的分区用来配置lv(逻辑分区),有的分区用来配置raid,有的分区用来做扩展分分区
    • 输入t 转换类型,L查看所有类型,如:现在把几个linux类型改为lv卷:
      在这里插入图片描述
    • L查看并记录好需要转换的类型id号后再次输入t,即可进入类型转换模式了:
      • 输入分区号,就是要给哪个分区修改类型
      • 然后输入类型id即可修改完成【需要给多个分区修改则重复上面步骤】
        在这里插入图片描述
        在这里插入图片描述

    保存分区

    • 上面功能按需定义完以后输入 w回车即可保存成功
    • 然后输入 partprobe 分区设备名(刷新分区表):
      在这里插入图片描述

    partprobe 分区设备名(刷新分区表)

    • 也可以直接执行 partprobe即可。
    • 在这单独说明,是证明这个很重要,做完分区w保存退出以后必须执行这个命令,不然fdisk -l看不到最新的分区信息。
    • 全部完成以后输入lsblk是看不出主分区或扩展分区等类型的,需要输入 fdisk -l 设备名 ,才能看到刚才定义的类型:
      在这里插入图片描述
      在这里插入图片描述

    完整流程展示

    • 下面我创建了3个主分区和若干逻辑分区,为了更直观看出,我没有用空格,注意看后面解释内容。
    • 其实下面内容是我另外一个脚本中的部分摘抄罢了,更多的可以直接去看这篇博客哈:
      linux脚本用fdisk批量给主机硬盘分区
    [root@controll ccx]# fdisk /dev/sdb  # 分区/dev/sdb这块盘
    Welcome to fdisk (util-linux 2.23.2).
    
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    
    Command (m for help): n # 开始创建
    Partition type:
       p   primary (0 primary, 0 extended, 4 free)
       e   extended
    Select (default p): p #选择主分区
    Partition number (1-4, default 1): 1 # 第一个主分区
    First sector (2048-41943039, default 2048): 2048 #起始扇区
    Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 6289408 #默认扇区,我是换算的单位,这可以直接+3G的
    Partition 1 of type Linux and of size 3 GiB is set
    
    Command (m for help): n # 创建分区
    Partition type:
       p   primary (1 primary, 0 extended, 3 free)
       e   extended
    Select (default p): p #创建主分区
    Partition number (2-4, default 2): 2 #第二个主分区
    First sector (6289409-41943039, default 6291456): 6289409 #默认扇区,上一个结束扇区+1
    Last sector, +sectors or +size{K,M,G} (6289409-41943039, default 41943039): 14678017
    Partition 2 of type Linux and of size 4 GiB is set
    
    Command (m for help): n
    Partition type:
       p   primary (2 primary, 0 extended, 2 free)
       e   extended
    Select (default p): p
    Partition number (3,4, default 3): 3
    First sector (14678018-41943039, default 14680064): 14678018
    Last sector, +sectors or +size{K,M,G} (14678018-41943039, default 41943039): 25163778
    Partition 3 of type Linux and of size 5 GiB is set
    
    Command (m for help): n
    Partition type:
       p   primary (3 primary, 0 extended, 1 free)
       e   extended
    Select (default e): e
    Selected partition 4
    First sector (25163779-41943039, default 25165824): 25163779
    Last sector, +sectors or +size{K,M,G} (25163779-41943039, default 41943039): +
    Using default value 41943039
    Partition 4 of type Extended and of size 8 GiB is set
    
    Command (m for help): n
    All primary partitions are in use
    Adding logical partition 5
    First sector (25165827-41943039, default 25167872): 25165827
    Last sector, +sectors or +size{K,M,G} (25165827-41943039, default 41943039): 29360131
    Partition 5 of type Linux and of size 2 GiB is set
    
    Command (m for help): n
    All primary partitions are in use
    Adding logical partition 6
    First sector (29362180-41943039, default 29364224): 29362180
    Last sector, +sectors or +size{K,M,G} (29362180-41943039, default 41943039): 33554436
    Partition 6 of type Linux and of size 2 GiB is set
    
    Command (m for help): n
    All primary partitions are in use
    Adding logical partition 7
    First sector (33556485-41943039, default 33558528): 33556485
    Last sector, +sectors or +size{K,M,G} (33556485-41943039, default 41943039): +
    Using default value 41943039
    Partition 7 of type Linux and of size 4 GiB is set
    
    Command (m for help): p
    
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x0ab2846a
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048     6289408     3143680+  83  Linux
    /dev/sdb2         6289409    14678017     4194304+  83  Linux
    /dev/sdb3        14678018    25163778     5242880+  83  Linux
    /dev/sdb4        25163779    41943039     8389630+   5  Extended
    /dev/sdb5        25165827    29360131     2097152+  83  Linux
    /dev/sdb6        29362180    33554436     2096128+  83  Linux
    /dev/sdb7        33556485    41943039     4193277+  83  Linux
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    [root@controll ccx]# 
    

    分区完成以后 需要格式化后才能正常使用

    分完区以后的硬盘使用流程

    格式化硬盘(指定块大小等)

    • 输入mkfs. 然后tab就可以查看所有支持的类型:(也可以mkfs -t 类型,如mkfs -t xfs…,但建议使用mkfs.**)(-t是指定类型,但一般用mkfs.类型,不用-t指定)
      在这里插入图片描述
    • 定义成什么,直接mkfs.**即可,以xfs为例:mkfs.xfs -f /dev/sdb1 (-f 是强制转换,如果之前已经定义了一次,不输入-f就会报错):
      在这里插入图片描述
      • 不加-f再次定义报错:
        在这里插入图片描述
    • 可以自定义block(默认是4k)mkfs.xfs -f -b size=大小 设备名 ,即可:
      在这里插入图片描述
    • ext4定义block:mkfs.ext4 -b 大小 设备名 ,即可:
      在这里插入图片描述
      格式定义完以后磁盘分区就完成了。

    硬盘挂载(需格式化后)

    • 完成格式化要使用需要挂载呀? 挂载有2种:

      • 一种是临时挂载 mount 设备名 挂载文件(挂载文件可以mkdir新建到任何设备名中)
      • 第二种是永久挂载,把信息写进/etc/fstab中,永久挂载中有一栏需要知道 类型,类型查看有2种方法,第一种先临时挂载磁盘,然后df -Th即可, 第二种 直接blkid,后面有所有分区的类型:
        在这里插入图片描述
    • 如果/etc/fstab文件中类型错误会导致系统无法开机,如何识别是否正确写入,编辑完保存以后,mount -a如果磁盘能自动挂载便成功(如果使用的是网络设备挂载,建议用uuid的方式,因为网络设备有可能会发生磁盘的窜位,导致磁盘无法正常使用):
      在这里插入图片描述

    查看uuid的2种方式

    • 一种是blkid【查看所有分区的uid】
    • 另外一种是xfs_admin -u 设备名 【查看单独一个分区的uuid】

    修改uuid

    uuidgen 生成一个随机id,然后xfs_admin -U 新uuid 设备名即可:
    在这里插入图片描述
    分区已经创建好以后,查看文件系统的属性:xfs_info 挂载设备名

    展开全文
  • linux_fdisk命令详解

    2017-05-26 17:24:48
    学习linux下fdisk命令
  • fdisk分区命令

    2020-03-19 12:26:03
    fdisk是Linux系统中最常用的分区工具,通过这个命令也可以查看系统中所有可用的分区,但是这个命令只支持MBR的分区表(这句话应该只对某些系统,CentOS7-1810适用,Debian9.5和openSUSE15应该已经支持GPT分区表,下...

    fdisk是Linux系统中最常用的分区工具,通过这个命令也可以查看系统中所有可用的分区,但是这个命令只支持MBR的分区表(这句话应该只对某些系统,CentOS7-1810适用,Debian9.5和openSUSE15应该已经支持GPT分区表,下面对fdisk的操作都是在Debian9.5下操作),所以这个命令不能对大于2T的硬盘进行分区,大于2T的硬盘我们需要用GPT分区表来进行分区,GPT分区我们就要用gdisk或parted分区工具来进行分区。

    Linux 内核是如何理解硬盘的?
    作为人类,我们可以很轻松地理解一些事情;但是电脑就不是这样了,它们需要合适的命名才能理解这些。

    在 Linux 中,外围设备都位于 /dev 挂载点,内核通过以下的方式理解硬盘:

    /dev/hdX[a-z]:     IDE 硬盘被命名为 hdX
    /dev/sdX[a-z]:      SCSI 硬盘被命名为 sdX
    /dev/xdX[a-z]:      XT 硬盘被命名为 xdX
    /dev/vdX[a-z]:     虚拟硬盘被命名为 vdX
    /dev/fdN:              软盘被命名为 fdN
    /dev/scdN or /dev/srN:         CD-ROM 被命名为 /dev/scdN 或 /dev/srN

    fdisk 允许我们在每块硬盘上创建最多四个主分区。它们中的其中一个可以作为扩展分区,并下设多个逻辑分区。1-4 扇区作为主分区被保留,逻辑分区从扇区 5 开始。

    一、fdisk参数使用方法:

    fdisk [-l] 设备名

    参数
    -l :显示指定磁盘设备的分区表信息,如果没有指定磁盘设备,则显示/proc/partitions 文件中的信息,也就是系统中所有的磁盘设备。

    举例:
    -----------------------------------------------------------
    root@debian:~# fdisk  -l          #没有指定任何磁盘设备

    Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors       #第一块磁盘/dev/sda容量20G
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos                     #分区表的类型为MBR (dos表示MBR分区表,gpt表示GPT分区表)
    Disk identifier: 0xefdc905c

    Device          Boot    Start          End             Sectors   Size  Id       Type         #磁盘/dev/sda下的分区
    /dev/sda1     *          2048        37748735   377466881     8G        83     Linux
    /dev/sda2                37750782      41940991   4190210   2G         5       Extended
    /dev/sda5      37750784     41940991          4190208          2G        82      Linux swap / Solaris

    Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 sectors      #第二块磁盘/dev/sdb容量5G
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes

    root@debian:~#
    -----------------------------------------------------------
    使用 "fdisk -l" 查看分区信息,不同的发行版可能显示的信息不同,通过上面的信息能够看到我们添加的两块硬盘(/dev/sda 和 /dev/sdb)的信息。我们解释一下这些信息,其上半部分是硬盘的整体状态,/dev/sda 硬盘的总大小是20GB等信息。

    信息的下半部分是分区的信息,共 7 列,含义如下:

    Device:分区的设备文件名。
    Boot:是否为启动引导分区,在这里 /dev/sda1 为启动引导分区。
    Start:起始柱面,代表分区从哪里开始。
    End:终止柱面,代表分区到哪里结束。
    Sectors:分区的大小,单位是扇区。
    Size:分区的容量
    id:分区内文件系统的 ID。
    Type:分区的文件系统是什么。


    二、fdisk交互模式磁盘分区

    通过命令“fdisk 设备文件名” 就可以进入fdisk程序的交互模式,在交互模式中可以通过输入fdisk程序所提供的指令完成相应的操作,举例如下

    -----------------------------------------------------------
    root@debian:~# fdisk /dev/sdb

    Welcome to fdisk (util-linux 2.29.2).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.

    Device does not contain a recognized partition table.
    Created a new DOS disklabel with disk identifier 0xe3779e93.

    Command (m for help): m                                                                   #输入m可以获得帮助信息

    Help:

    DOS (MBR)
    a   toggle a bootable flag                                                                        #设置可引导标记
    b   edit nested BSD disklabel                                                                #编辑 bsd 磁盘标签
    c    toggle the dos compatibility flag                                                  #设置 DOS 操作系统兼容标记

    G  eneric
    d  delete a partition                                                                                 #删除一个分区
    F  list free unpartitioned space                                                           #列出空闲的未分区空间
    l    list known partition types                                                                 #显示已知的分区类型。82 为 Linux swap 分区,83 为 Linux 分区
    n    add a new partition                                                                            # 新建分区
    p    print the partition table                                                                    #显示当前磁盘的分区列表
    t    change a partition type                                                                      #改变分区类型
    v    verify the partition table                   #验证分区表
    i    print information about a partition            #打印有关分区的信息

    Misc
    m    print this menu                     #显示帮助菜单
    u    change display/entry units                        #改变显示记录单位
    x    extra functionality (experts only)             #附加功能(仅专家)

    Script
    I    load disk layout from sfdisk script file           #从sfdisk脚本文件加载磁盘布局
    O    dump disk layout to sfdisk script file           #将磁盘布局转储到sfdisk脚本文件

    Save & Exit
    w    write table to disk and exit                 #保存退出
    q    quit without saving changes              #不保存退出

    Create a new label
    g    create a new empty GPT partition table         #新建空白GPT分区表,这个应该就表明fdisk已经支持GPT,还需要进一步的认证。
    G    create a new empty SGI (IRIX) partition table         #新建空白IRIX分区表
    o    create a new empty DOS partition table         #新建空白DOS分区表
    s    create a new empty Sun partition table          #新建空白SUN磁盘标签


    Command (m for help):
    -----------------------------------------------------------

    三、分区管理

    1、新建主分区

    root@debian:~# fdisk    /dev/sdb            #要新建分区的磁盘/dev/sdb不要加数字加数字就变成了分区

    Welcome to fdisk (util-linux 2.29.2).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.

    Device does not contain a recognized partition table.
    Created a new DOS disklabel with disk identifier 0xd9b1702f.

    Command (m for help):  n              #输入n新建分区,默认直接创建MBR分区表
    Partition type
    p primary (0 primary, 0 extended, 4 free)       #主分区
    e extended (container for logical partitions)       #扩展分区
    Select (default p): p                  #输入p新建主分区
    Partition number (1-4, default 1):           #输入分区号,直接回车就行,默认为1
    First sector (2048-10485759, default 2048):      #输入起始扇区,直接回车就行,默认2048最前面开始
    Last sector, +sectors or +size{K,M,G,T,P} (2048-10485759, default 10485759):  +1G                 #这里输入新增分区的大小可以通过扇区数来增加,也可以通过+size{K,M,G,T,P}方式来增加,这里要增加1G的容量就表示为+1G       

    Created a new partition 1 of type 'Linux' and of size 1 GiB.      #提示创建了1G的分区

    Command (m for help):  p                     #输入p查看创建的分区
    Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos                        #分区表类型为MBR
    Disk identifier: 0xd9b1702f

    Device    Boot   Start   End     Sectors   Size   Id   Type
    /dev/sdb1      2048   2099199   2097152   1G   83   Linux

    2、剩余可用的空间

    Command (m for help):  F                     #输入F查看剩余可用的空间
    Unpartitioned space /dev/sdb: 4 GiB, 4293918720 bytes, 8386560 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes

    Start     End     Sectors   Size
    2099200   10485759   8386560    4G                   #可以看到可用空间为4G

    3、创建扩展分区及逻辑分区

    Command (m for help):  n                     #输入n继续创建分区
    Partition type
    p primary (1 primary, 0 extended, 3 free)
    e extended (container for logical partitions)
    Select (default p):  e                          #输入e创建扩展分区
    Partition number (2-4, default 2):                  #输入扩展分区号,直接回车就可以
    First sector (2099200-10485759, default 2099200):          #输入起始扇区数,直接回车就可以
    Last sector, +sectors or +size{K,M,G,T,P} (2099200-10485759, default 10485759): +2G                                    #增加2G的容量

    Created a new partition 2 of type 'Extended' and of size 2 GiB.       #创建扩展分区成功

    Command (m for help):  n                       #输入n继续创建分区
    Partition type
    p primary (1 primary, 1 extended, 2 free)
    l logical (numbered from 5)                      #只有创建了扩展分区才会有这个选项
    Select (default p):  l                         #输入l创建逻辑分区

    Adding logical partition 5                          #扩展分区号从5开始
    First sector (2101248-6293503, default 2101248):
    Last sector, +sectors or +size{K,M,G,T,P} (2101248-6293503, default 6293503): +1G

    Created a new partition 5 of type 'Linux' and of size 1 GiB.

    Command (m for help):  p
    Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0xd9b1702f

    Device    Boot  Start   End     Sectors   Size   Id   Type
    /dev/sdb1     2048   2099199   2097152   1G   83   Linux           #主分区
    /dev/sdb2      2099200     6293503   4194304    2G    5   Extended               #扩展分区
    /dev/sdb5       2101248    4198399   2097152    1G   83   Linux               #逻辑分区

    4、删除分区

    Command (m for help): d                    #输入d删除分区
    Partition number (1,2,5, default 5): 2               #删除扩增分区2,上面的逻辑分区也会一同删除

    Partition 2 has been deleted.

    Command (m for help): p
    Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0xd9b1702f

    Device Boot Start End Sectors Size Id Type
    /dev/sdb1 2048 2099199 2097152 1G 83 Linux

    Command (m for help):

    5、修改分区类型

    Command (m for help):  l                      #查看可用分区类型


    #其中82为Linux swap分区、83为Linux分区、8e为LinuxLVM分区、b为Windows FAT32分区、e为Windows FAT16分区。

    Command (m for help): t                  #输入t更改分区类型
    Partition number (1,2,5, default 5): 5        #更改分区5的类型

    Partition type (type L to list all types): 8e            #输入更改分区类型为8e,这里输入l也可以查看分区的类型

    Changed type of partition 'Linux' to 'Linux LVM'.          #提示更改成功

    Command (m for help): p
    Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0xd9b1702f

    Device   Boot    Start    End     Sectors   Size   Id   Type
    /dev/sdb1       2048   2099199   2097152   1G   83   Linux
    /dev/sdb2       2099200   6293503   4194304    2G   5   Extended
    /dev/sdb5       2101248   4198399   2097152    1G   8e   Linux LVM         #更改后的分区类型

    Command (m for help):

    6、保存修改的结果

    Command (m for help):  w                        #输入w保存配置,如果不想保存可以输入q退出
    The partition table has been altered.
    Calling ioctl() to re-read partition table.
    Syncing disks.


    使用w指令保存后,则在fdisk中所做的所有操作都会生效,且不可回退。如果分区表正忙,则需要重启机器后才能使新的分区表生效。

    四、新建GPT分区

    不是所有的发行版带的fdisk都支持GPT分区这里请注意

    1、新建分区

    Command (m for help): p

    Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos                  #现在的分区类型为MBR
    Disk identifier: 0xd9b1702f

    Command (m for help): g            #输入g创建GPT分区
    Created a new GPT disklabel (GUID: 8C0F4613-2830-40E1-8D23-596D1B7F5DDB).

    Command (m for help): n            #新建分区
    Partition number (1-128, default 1):         #可以看到这里没有扩展分区的概念了
    First sector (2048-10485726, default 2048):
    Last sector, +sectors or +size{K,M,G,T,P} (2048-10485726, default 10485726): +1G

    Created a new partition 1 of type 'Linux filesystem' and of size 1 GiB.

    Command (m for help): p
    Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: gpt
    Disk identifier: 8C0F4613-2830-40E1-8D23-596D1B7F5DDB

    Device    Start   End   Sectors   Size   Type                                               #GPT下输入p显示的分区信息和MBR下略有不同,没有分区类型id的选项
    /dev/sdb1   2048       2099199     2097152         1G        Linux filesystem       #成功创建了一个主分区

    Command (m for help):

     

    2、 修改分区的类型

    Command (m for help): l                                #查看分区的类型,GPT下同样的分区类型对应的编号不同了,这里要注意

     上面只是显示了部分按空格显示更多的信息

     

    Command (m for help):  t                                          #输入t更改分区类型,这里输入l也可以查看分区的类型
    Partition number (1,2, default 2):  2                      #输入要更改的分区
    Hex code (type L to list all codes):  31                  #输入分区类型的编号 

     

    Changed type of partition 'Linux filesystem' to 'Linux LVM'.               #更改分区类型成功

     

    Command (m for help): p                                      
    Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: gpt
    Disk identifier: 836D334F-D0EE-4AD3-8581-EC9ABFF31F50

     

    Device    Start    End       Sectors   Size   Type
    /dev/sdb1      2048         2099199    2097152        1G          Linux filesystem
    /dev/sdb2    2099200    4196351     2097152      1G          Linux LVM                                #分区类型为已经更改

     

    Command (m for help):

     

    展开全文
  • fdisk 磁盘分区

    2015-05-14 16:55:40
    fdisk 磁盘分区模拟器,初学者学习磁盘命令分区
  • linux fdisk

    2014-12-17 23:16:12
    redhat linux 下如何使用 fdisk 的详细说明,很好的技术参考文档。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 93,054
精华内容 37,221
关键字:

fdisk