文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux下如何使用parted命令对磁盘进行分区

2023-06-27 12:24

关注

这篇文章主要为大家展示了“Linux下如何使用parted命令对磁盘进行分区”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何使用parted命令对磁盘进行分区”这篇文章吧。

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

Linux下如何使用parted命令对磁盘进行分区

GPT 磁盘分区:

首先,你得有一块 GPT 分区的硬盘。小于 2 TB 的磁盘也可以转为 MBR 磁盘,但是大于 2 TB 的磁盘则需要使用 GPT 分区,否则大于 2 TB 的部分将被你封印。

挂载硬盘后,打开系统并以 root 身份登陆。这里博主以 CentOS 6.7 为例,其他 Linux 发行版也是支持 parted 命令的。

我们可以使用 ll /dev/ | grep sd 命令查看当前已挂载的硬盘,如下:

[root@localhost ~]# ll /dev/ | grep sdlrwxrwxrwx 1 root root 4 Jan 21 03:55 root -> sda3brw-rw---- 1 root disk 8, 0 Jan 21 04:21 sdabrw-rw---- 1 root disk 8, 1 Jan 21 03:55 sda1brw-rw---- 1 root disk 8, 2 Jan 21 03:55 sda2brw-rw---- 1 root disk 8, 3 Jan 21 03:55 sda3brw-rw---- 1 root disk 8, 4 Jan 21 03:55 sda4brw-rw---- 1 root disk 8, 5 Jan 21 03:55 sda5brw-rw---- 1 root disk 8, 6 Jan 21 03:55 sda6brw-rw---- 1 root disk 8, 7 Jan 21 03:55 sda7brw-rw---- 1 root disk 8, 8 Jan 21 03:55 sda8brw-rw---- 1 root disk 8, 9 Jan 21 03:55 sda9brw-rw---- 1 root disk 8, 16 Jan 21 03:55 sdb#可以看出,当前系统挂载了两块硬盘,分别被标识为sda和sdb,其中sda包含了9个分区,sdb没有分区#之前的Linux,会将IDE类型的磁盘命名为hda、hdb...将SATA和SCSI类型的磁盘命名为sda、sdb...#但是自从2.6.19内核开始,Linux统一将挂载的磁盘命名为sda、sdb...之后,再使用 fdisk -l 命令查看这两块硬盘,如下。[root@localhost ~]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000f1e9dDevice Boot Start End Blocks Id System/dev/sda1 * 1 26 204800 83 LinuxPartition 1 does not end on cylinder boundary./dev/sda2 26 942 7357440 83 LinuxPartition 2 does not end on cylinder boundary./dev/sda3 942 1725 6291456 83 Linux/dev/sda4 1725 2611 7116800 5 Extended/dev/sda5 1726 1987 2097152 82 Linux swap / Solaris/dev/sda6 1987 2248 2097152 83 Linux/dev/sda7 2248 2379 1048576 83 Linux/dev/sda8 2379 2509 1048576 83 Linux/dev/sda9 2509 2611 819200 83 LinuxWARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.Disk /dev/sdb: 4398.0 GB, 4398046511104 bytes256 heads, 63 sectors/track, 532610 cylindersUnits = cylinders of 16128 * 512 = 8257536 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x3c613c22Device Boot Start End Blocks Id System/dev/sdb1 1 266306 2147483647+ ee GPT#警告说fdisk不支持GPT磁盘,请使用GNU Parted#可以使用“fdisk 磁盘名”进入交互模式,之后输入字母i查看Id含义#82表示Linux Swap;83表示Linux;ee表示GPT

之后,我们就选用 Parted 为 GPT 磁盘分区。

Parted 和 fdisk 一样拥有两种模式:

命令行模式: parted [option] device [command]

交互模式: parted [option] device

以下为具体分区方式

(parted)后字符为输入字符[root@localhost ~]# parted /dev/sdbGNU Parted 2.1Using /dev/sdbWelcome to GNU Parted! Type 'help' to view a list of commands.(parted) p #p=print,查看所有分区Model: VMware, VMware Virtual S (scsi)Disk /dev/sdb: 4398GBSector size (logical/physical): 512B/512BPartition Table: gpt #磁盘类型,为GPTNumber Start End Size File system Name Flags #这里为空,表示没有分区(parted) mkpart #只输入mkpart开始交互式分区Partition name? []? primaryFile system type? [ext2]? ext4Start? 0End? 1024GWarning: The resulting partition is not properly aligned for best performance.Ignore/Cancel? Ignore(parted) mkpart primary 1024G 3072G #通过命令新建分区,mkpart PART-TYPE [FS-TYPE] START END,表示新建一个从1024G开始到3072G结束的大小为2TB的主分区(parted) mkpart extended ext4 3072G 3500G #中间加入ext4,表示文件系统,分区类型为扩展分区,然并卵,反正他也不会自动格式化(parted) mkpart primary 3500G -1 #-1表示结束位置在磁盘末尾(parted) pModel: VMware, VMware Virtual S (scsi)Disk /dev/sdb: 4398GBSector size (logical/physical): 512B/512BPartition Table: gptNumber Start End Size File system Name Flags1 17.4kB 1024GB 1024GB primary2 1024GB 3072GB 2048GB primary3 3072GB 3500GB 428GB extended4 3500GB 4398GB 898GB primary#此时发现“文件系统”一栏为空,表示尚未格式化,之后将进行格式化(parted) quit #退出parted工具[root@localhost ~]# mkfs -t ext4 /dev/sdb1mke2fs 1.41.12 (17-May-2010)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks62504960 inodes, 249999995 blocks12499999 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=42949672967630 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks:32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,102400000, 214990848Writing inode tables: doneCreating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 38 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.#按同样语句执行mkfs -t ext4 /dev/sdb2、mkfs -t ext4 /dev/sdb3、mkfs -t ext4 /dev/sdb4之前不在 Parted 工具内执行 mkfs 是因为 Parted 无法将文件系统格式为 ext4 格式。

此时如果使用 fdisk -l 命令,是无法查看到 GPT 磁盘的分区的,而需要使用 parted -l。

[root@localhost ~]# parted -lModel: VMware, VMware Virtual S (scsi)Disk /dev/sdb: 4398GBSector size (logical/physical): 512B/512BPartition Table: gptNumber Start End Size File system Name Flags1 17.4kB 1024GB 1024GB ext4 primary2 1024GB 3072GB 2048GB ext4 primary3 3072GB 3500GB 428GB ext4 extended4 3500GB 4398GB 898GB ext4 primary

此时磁盘已经成功格式化了,但是没有为其指定挂载点,需要查看如何设定挂载点,请看文章末尾

Linux下如何使用parted命令对磁盘进行分区

MBR 磁盘分区:

MBR 磁盘分区方法和 GPT 磁盘可谓是一模一样…MBR 磁盘不能大于 2 TB,否则将会强制只使用 2 TB。

主要步骤和 GPT 磁盘分区一样,但是 MBR 磁盘分区有一点需要注意下:

(parted) pError: /dev/sdb: unrecognised disk label#若出现以上错误,表示MBR磁盘没有主引导记录,需要将磁盘转换为MBR,命令为:(parted) mklabel msdos#msdos就是MBR磁盘,此时(parted) p将不会报错

挂载磁盘:

格式化硬盘后,需要为每个分区设置挂载点,有两种方式:一种是临时挂载,重启失效;另一种开机自动挂载。

请分别为所有分区设置挂载点。

mkdir /build#挂载前先建立需要挂载的文件夹名,可以自行定义#临时挂载,重启失效mount /dev/sdb1 /build#挂载,根据实际情况自行修改#开机自动挂载,以下两种方式二选一#第一种,麻烦blkid | grep /dev/sdb1#查看分区的UUIDecho 'UUID=XXXXXXXXXXXX /build ext4 defaults 1 2' >> /etc/fstab#将分区的UUID填充在XXXXX位置#第二种,简单echo '/dev/sdb1 /build ext4 defaults 1 2' >> /etc/fstabumount /dev/sdb1#此命令用于取消挂载#注意:有时候会遇到无法卸载的情况,遇到这种情况的原因是因为有其他用户或进程正在访问该文件系统导致的。在Linux系统中,只有当该文件系统上所有访问的用户或进程完成操作并退出后,这个文件系统才能被正常卸载#使用命令“lsof 挂载点”查看哪些进程正在访问该文件系统,之后使用kill命令将进程杀死来进行卸载

此时,挂载已经设置完成,重启后,可以通过 df 命令查看挂载状态。

以上是“Linux下如何使用parted命令对磁盘进行分区”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯