标签 parted 下的文章

了解对新的储存设备分区的基础知识,然后下载我们的速查表,让信息近在咫尺。

 title=

在 21 世纪,我们往往认为数据存储是理所当然的。我们有许多存储介质,相对价格便宜,而且有许多不同的可用类型。然而,不论你获得的免费云存储空间有多少,没有比有一个物理硬盘空间来存储重要的数据更好了(或容量真的很大的,而当你又在一个慢速网络上时)。然而,没有几块硬盘买回来就是现成的,至少在理想的状况下可以直接使用的。无论你是买了一块新硬盘,还用不同分区安装一个系统,你需要知道怎么在 Linux 上为磁盘分区。

这篇文章介绍了 GNU Parted ,它磁盘分区最好的工具之一。如果你偏向使用图形化程序,而不算终端命令行,请阅读我的《为 Linux 格式化驱动器》这篇文章。

磁盘标签、分区和文件系统

技术上来说,一个硬盘驱动器不需要很多软件,就可用作存储设备。然而,在没有分区表和文件系统等现代惯例的情况下使用硬盘是困难的、不切实际的,而且对你的数据不安全。

关于硬盘驱动器,这里有三个你需要知道的重要概念:

  • 磁盘标签 disk label (或者 分区表 partition table )是放置在磁盘驱动器起始位置的元数据,它告诉计算机可用的存储是何种类型、以及它在磁盘驱动器的位置等信息。
  • 分区 partition 是一个识别文件系统位置的边界。举个例子,如果你有一个 512GB 的硬盘,你可以用占用所有磁盘容量(512GB)分成一个分区,或者分成两个分区,每个占用 256GB ,或者分成三个分区,占用各种不同大小的空间等等。
  • 文件系统 filesystem 是一个硬盘驱动器和计算机两者约定俗成的存储方案。计算机必须知道怎样读取文件系统来拼凑存储在驱动器上的数据,并且必须知道怎样写入数据到文件系统并保持数据的完整性。

GNU Parted 程序管理着前两个概念:磁盘标签和分区。Parted 对文件系统有所了解,但是它把文件系统的实现细节交给了其他类似 mkfs 这样的工具。

下载 GNU Parted 速查表

确定磁盘驱动器的位置

使用 GNU Parted 之前,你必须确定你的驱动器在你的系统上的位置。首先,将你要格式化的磁盘驱动器连接到你的系统,然后用 parted 命令查看连接到你的计算机的设备:

$ parted /dev/sda print devices
/dev/sda (2000GB)
/dev/sdb (1000GB)
/dev/sdc (1940MB)

你最新连接设备的名称在字母表上晚于连接时间更长的设备。举个例子,/dev/sdc 最有可能是我刚刚连接的磁盘。我能通过它的容量大小来确认,相比于我的工作站上的主要驱动器的 TB 大小来说,因为我知道我插入的 U 盘只有 2GB(1940MB,足够接近)大小。如果你不能确定,你可以得到的更多关于你想要分区的驱动器的信息:

$ parted /dev/sdc print
Model: Yoyodyne Tiny Drive 1.0 (scsi)    
Disk /dev/sdc: 1940MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2048kB  1024kB  BS           Bloat  Hidden
 2      2049kB  1939MB  1937MB  FAT32        MyDrive

有些驱动器比其他驱动器有更多的元数据。这个磁盘表明它的物理驱动器品牌是 Yoyodyne ,此外,在磁盘的起始处包含了一个小的隐藏分区,后面是一个兼容 Windows 的臃肿的 FAT32 分区。这确实是我要重新打算格式化的驱动器。

继续之前,确认 你已经确定了要分区的正确驱动器。 对错误的驱动器重新分区会导致数据丢失。 为了安全起见,在本文中所有具有潜在破环性的命令都指向在你的系统中不太可能有的 /dev/sdX 设备。

创建磁盘标签(或者分区表)

要在磁盘上创建一个分区,驱动器必须要有一个 磁盘标签 disk label 。磁盘标签也被叫做 分区表 partition table ,所以 Parted 对两个术语都接受。

要创建一个磁盘卷标,使用 mklabelmktable 子命令:

$ parted /dev/sdX mklabel gpt

这个命令在 /dev/sdX 的驱动器前面创建了一个 gpt 标签,删除了任何可能存在的标签。这是一个快速的过程,因为所有被替换的信息都是关于分区的元数据。

创建分区

要在磁盘创建分区,使用 mkpart 子命令,后跟可选的分区名称,再跟分区的开始和结束位置。如果你在磁盘上只需要一个分区,那么大小调整是容易的:开始位置输入 1 ,结束位置输入 100% 。使用 --align opt 参数允许 Parted 调整分区边界位置便于磁盘获得最佳性能:

$ parted /dev/sdX --align opt \
mkpart example 1 100%

print 子命令查看你的新分区:

$ parted /dev/sdX print
Model: Yoyodyne Tiny Drive 1.0 (scsi)
Disk /dev/sdi: 1940MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size  
 1      1049kB  1939MB  1938MB

你不必将整个磁盘用作一个分区。分区的优势是在一个磁盘上可以存在多个文件系统,它们之间不会相互干扰。在确定分区大小的时候,你可以使用 unit 子命令来设置你想用的测量方法。Parted 可以理解 扇区 sector 柱面 cylinder 磁头 head 字节 byte 、KB、MB、GB、TB 和百分比。(LCTT 译注:具体使用方法请参阅手册页)

你也可以指定你打算使用的分区的文件系统。这并不会创建文件系统,但是它为你以后方便使用提供了元数据。

将磁盘对半分,一个是 XFS 文件系统,另一个是 EXT4 文件系统:

$ parted /dev/sdX --align opt \
mkpart xfs 1 50%
$ parted /dev/sdX --align opt \
mkpart ext4 51% 100%

命名分区

除了标记分区用于什么文件系统之外,你也可以为每个分区命名。一些文件管理器和工具可以读取分区名称,能够帮助你区分驱动器。例如,我经常有几个不同的驱动器连接到我的媒体工作站,每个属于一个不同的项目。当创建这些驱动器的时候,我同时命名了分区和文件系统,这样,无论我怎么看我的系统,有重要数据的位置都会被清楚地标示出来。

要命名一个分区,你必须知道它的序号:

$ parted /dev/sdX print
[...]
Number  Start   End     Size   File system  Name     Flags
 1      1049kB  990MB   989MB  xfs          example
 2      1009MB  1939MB  930MB  ext4         noname

要命名分区 1:

$ parted /dev/sdX name 1 example
$ parted /dev/sdX print
[...]
Number  Start   End     Size   File system  Name     Flags
 1      1049kB  990MB   989MB  xfs          example
 2      1009MB  1939MB  930MB  ext4         noname

创建文件系统

要让你的驱动器能够正常使用,你必须在新分区上创建一个文件系统。GNU Parted 并不做这些,因为它只是一个分区管理器。在磁盘上创建文件系统的 Linux 命令是 mkfs,但也有一些有用的工具可以让你用来创建特定类型的文件系统。例如,mkfs.ext4 创建 EXT4 文件系统,mkfs.xfs 创建 XFS 文件系统等等。

你的分区位于磁盘驱动器的“内部” ,所以你不是在 /dev/sdX 上创建文件系统,而是在 /dev/sdX1 上为第一个分区创建文件系统,在 /dev/sdX2 上为第二个分区创建,以此类推。

这里是一个创建 XFS 文件系统的例子:

$ sudo mkfs.xfs -L mydrive /dev/sdX1

下载我们的速查表

Parted 是一个灵活而强大的工具。你可以发出命令,如本文所示的那样,或者激活一个交互模式以不断 “连接” 你指定的驱动器:

$ parted /dev/sdX
(parted) print
[...]
Number  Start   End     Size   File system  Name     Flags
 1      1049kB  990MB   989MB  xfs          example
 2      1009MB  1939MB  930MB  ext4         noname

(parted) name 1 mydrive
(parted)

如果你打算经常使用 Parted ,下载我们的 GNU Parted 速查表,让信息近在咫尺。


via: https://opensource.com/article/21/4/linux-parted-cheat-sheet

作者:Seth Kenlon 选题:lujun9972 译者:hwlife 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

学习如何在 Linux 中使用 parted 命令来对存储设备分区。

在 Linux 中创建和删除分区是一种常见的操作,因为存储设备(如硬盘驱动器和 USB 驱动器)在使用之前必须以某种方式进行结构化。在大多数情况下,大型存储设备被分为称为 分区 partition 的独立部分。分区操作允许您将硬盘分割成独立的部分,每个部分都像是一个硬盘驱动器一样。如果您运行多个操作系统,那么分区是非常有用的。

在 Linux 中有许多强大的工具可以创建、删除和操作磁盘分区。在本文中,我将解释如何使用 parted 命令,这对于大型磁盘设备和许多磁盘分区尤其有用。parted 与更常见的 fdiskcfdisk 命令之间的区别包括:

  • GPT 格式:parted 命令可以创建全局惟一的标识符分区表 GPT,而 fdiskcfdisk 则仅限于 DOS 分区表。
  • 更大的磁盘: DOS 分区表可以格式化最多 2TB 的磁盘空间,尽管在某些情况下最多可以达到 16TB。然而,一个 GPT 分区表可以处理最多 8ZiB 的空间。
  • 更多的分区: 使用主分区和扩展分区,DOS 分区表只允许 16 个分区。在 GPT 中,默认情况下您可以得到 128 个分区,并且可以选择更多的分区。
  • 可靠性: 在 DOS 分区表中,只保存了一份分区表备份,在 GPT 中保留了两份分区表的备份(在磁盘的起始和结束部分),同时 GPT 还使用了 CRC 校验和来检查分区表的完整性,在 DOS 分区中并没有实现。

由于现在的磁盘更大,需要更灵活地使用它们,建议使用 parted 来处理磁盘分区。大多数时候,磁盘分区表是作为操作系统安装过程的一部分创建的。在向现有系统添加存储设备时,直接使用 parted 命令非常有用。

尝试一下 parted

下面解释了使用 parted 命令对存储设备进行分区的过程。为了尝试这些步骤,我强烈建议使用一块全新的存储设备或一种您不介意将其内容删除的设备。

1、列出分区

使用 parted -l 来标识你要进行分区的设备。一般来说,第一个硬盘 (/dev/sda/dev/vda )保存着操作系统, 因此要寻找另一个磁盘,以找到你想要分区的磁盘 (例如,/dev/sdb/dev/sdc/dev/vdb/dev/vdc 等)。

$ sudo parted -l
[sudo] password for daniel: 
Model: ATA RevuAhn_850X1TU5 (scsi)
Disk /dev/vdc: 512GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End    Size   Type     File system  Flags
 1      1049kB  525MB  524MB  primary  ext4         boot
 2      525MB   512GB  512GB  primary               lvm

2、打开存储设备

使用 parted 选中您要分区的设备。在这里例子中,是虚拟系统上的第三个磁盘(/dev/vdc)。指明你要使用哪一个设备非常重要。 如果你仅仅输入了 parted 命令而没有指定设备名字, 它会随机选择一个设备进行操作。

$ sudo parted /dev/vdc
GNU Parted 3.2
Using /dev/vdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

3、 设定分区表

设置分区表为 GPT ,然后输入 Yes 开始执行。

(parted) mklabel gpt 
Warning: the existing disk label on /dev/vdc will be destroyed 
and all data on this disk will be lost. Do you want to continue? 
Yes/No? Yes

mklabelmktable 命令用于相同的目的(在存储设备上创建分区表)。支持的分区表有:aix、amiga、bsd、dvh、gpt、mac、ms-dos、pc98、sun 和 loop。记住 mklabel 不会创建一个分区,而是创建一个分区表。

4、 检查分区表

查看存储设备信息:

(parted) print 
Model: Virtio Block Device (virtblk) 
Disk /dev/vdc: 1396MB 
Sector size (logical/physical): 512B/512B 
Partition Table: gpt 
Disk Flags: 
Number Start End Size File system Name Flags

5、 获取帮助

为了知道如何去创建一个新分区,输入: (parted) help mkpart

(parted) help mkpart 
  mkpart PART-TYPE [FS-TYPE] START END     make a partition

        PART-TYPE is one of: primary, logical, extended
        FS-TYPE is one of: btrfs, nilfs2, ext4, ext3, ext2, fat32, fat16, hfsx, hfs+, hfs, jfs, swsusp,
        linux-swap(v1), linux-swap(v0), ntfs, reiserfs, hp-ufs, sun-ufs, xfs, apfs2, apfs1, asfs, amufs5,
        amufs4, amufs3, amufs2, amufs1, amufs0, amufs, affs7, affs6, affs5, affs4, affs3, affs2, affs1,
        affs0, linux-swap, linux-swap(new), linux-swap(old)
        START and END are disk locations, such as 4GB or 10%.  Negative values count from the end of the
        disk.  For example, -1s specifies exactly the last sector.

        'mkpart' makes a partition without creating a new file system on the partition.  FS-TYPE may be
        specified to set an appropriate partition ID.

6、 创建分区

为了创建一个新分区(在这个例子中,分区 0 有 1396MB),输入下面的命令:

(parted) mkpart primary 0 1396MB 

Warning: The resulting partition is not properly aligned for best performance 
Ignore/Cancel? I 

(parted) print 
Model: Virtio Block Device (virtblk) 
Disk /dev/vdc: 1396MB 
Sector size (logical/physical): 512B/512B 
Partition Table: gpt 
Disk Flags: 
Number Start   End     Size    File system Name Flags 
1      17.4kB  1396MB  1396MB  primary

文件系统类型(fstype)并不是在 /dev/vdc1上创建 ext4 文件系统。 DOS 分区表的分区类型是 主分区 primary 逻辑分区 logical 扩展分区 extended 。 在 GPT 分区表中,分区类型用作分区名称。 在 GPT 下必须提供分区名称;在上例中,primary 是分区名称,而不是分区类型。

7、 保存退出

当你退出 parted 时,修改会自动保存。退出请输入如下命令:

(parted) quit
Information: You may need to update /etc/fstab.
$

谨记

当您添加新的存储设备时,请确保在开始更改其分区表之前确定正确的磁盘。如果您错误地更改了包含计算机操作系统的磁盘分区,会使您的系统无法启动。


via: https://opensource.com/article/18/6/how-partition-disk-linux

作者:Daniel Oh 选题:lujun9972 译者:amwps290 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

众所周知,对硬盘分区是 Linux 管理员一项最重要的管理任务之一,他们不能不知道这个。

在最糟糕的时候,你至少每周会收到一次依赖小组的请求,而在更大的环境里会更加频繁 。

你可能会问为什么我们要用 parted 而不是 fdisk? 它们有什么区别?好问题,我会告诉你这两者的区别。

  • parted 支持用户在大于 2TB 的硬盘上创建硬盘分区, 但 fdisk 命令不支持
  • 对比 fdisk 来说,parted 是一个更高级的工具
  • 支持更多的分区表类型,包括 GPT (LCTT 译注:全局唯一标识分区表)
  • 它允许用户调整分区大小, 但当缩减分区空间的时候,它没有如我意料的工作,多数情况下我会得到错误消息。所以我会建议用户不要用 parted 来缩减分区大小。

什么是 parted

parted 是一个操作硬盘分区的程序。它支持多种分区表类型,包括 MS-DOS 和 GPT。

它允许用户创建、删除、调整、缩减、移动和复制分区,以及重新组织硬盘的使用,复制数据到新的硬盘上。gpartedparted 的图形界面前端。

怎样安装 parted

大部分发行版已经预安装了 parted。如果没有,用下列命令来安装 parted

对于 Debian/Ubuntu 用户, 使用 APT-GET 命令 或者 APT 命令 来安装 parted

$ sudo apt install parted

对于 RHEL/CentOS 用户,用 YUM 命令 来安装 parted

$ sudo yum install parted

对于 Fedora 用户,用 DNF 命令 来安装 parted

$ sudo dnf install parted

对于 Arch Linux 用户,用 Pacman 命令来安装 parted

$ sudo pacman -S parted

对于 openSUSE 用户, 用 Zypper 命令来安装 parted

$ sudo zypper in parted

怎样启动 parted

下面的 parted 命令会自动选择 /dev/sda ,因为这是系统的第一个硬盘。

$ sudo parted
GNU parted 3.2
Using /dev/sda
Welcome to GNU parted! Type 'help' to view a list of commands.
(parted)

同时我们也可以用下面的命令来重新选择对应的的硬盘。

(parted) select /dev/sdb
Using /dev/sdb
(parted)

如果你想选择特定的硬盘, 用下列的格式来输入命令。 这次 ,我们将选择 /dev/sdb

$ sudo parted [Device Name]
$ sudo parted /dev/sdb
GNU parted 3.2
Using /dev/sdb
Welcome to GNU parted! Type 'help' to view a list of commands.
(parted)

怎样用 parted 列出所有可用的硬盘

如果你不知道你的电脑上有什么硬盘,只需要运行下列命令,该命令会显示所有可用硬盘的名字,以及其它的有用信息比如储存空间、型号、扇区大小、硬盘标志以及分区信息。

$ sudo parted -l
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
 1 1049kB 32.2GB 32.2GB primary ext4 boot


Error: /dev/sdb: unrecognised disk label
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

上面的错误信息清晰地显示出硬盘 /dev/sdb 没有有效的 磁盘标签 disk label 。 它不会自动得到磁盘标签,所以, 我们便要自己设置硬盘标签。

怎样用 parted 创建硬盘分区

parted 允许用户创建主分区或者拓展分区。创建这两种类型的分区的步骤还是一样,但请确保你已经指定了需要的分区类型,比如 primary (主分区)或者 extended (扩展分区)。

为了演示这项操作 ,我们安装了一个新的 50 GB 的硬盘到到电脑上,挂载在 /dev/sdb 上。

有两种方法创建分区,第一种是更详细的方法,另一种只是一个命令。 在下面的例子中,我们将用更详细的方法添加一个主分区。提醒一下, 我们应该先设置磁盘标签,因为它不会自动设置任何标签。

在下面的例子中,我们将要创建一个 10 GB 的分区

$ sudo parted /dev/sdb
GNU parted 3.2
Using /dev/sdb
Welcome to GNU parted! Type 'help' to view a list of commands.
(parted) mklabel msdos
(parted) unit GB
(parted) mkpart
Partition type? primary/extended? primary
File system type? [ext2]? ext4
Start? 0.00GB
End? 10.00GB
(parted) print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
 1 0.00GB 10.0GB 10.0GB primary ext4 lba

(parted) quit
Information: You may need to update /etc/fstab.

同时,我们也可以使用单条 parted 命令

在下面的例子中,我们将在硬盘上创建一个 10 GB 的分区。

$ sudo parted [Disk Name] [mkpart] [Partition Type] [Filesystem Type] [Partition Start Size] [Partition End Size]
$ sudo parted /dev/sdb mkpart primary ext4 10.0GB 20.0GB
Information: You may need to update /etc/fstab.

怎样使用所有剩余空间创建分区

你已经创建了除了 /home 之外等所有要求的分区,而且你想要用硬盘上所有剩余的空间来创建 /home 分区,要怎样做?可以使用下面的命令来创建分区。

下面的命令创建了一个 33.7 GB 的分区,从 20 GB 开始到 53 GB 结束。 100% 使用率允许用户用硬盘上所有剩余的空余空间。

$ sudo parted [Disk Name] [mkpart] [Partition Type] [Filesystem Type] [Partition Start Size] [Partition End Size]

$ sudo parted /dev/sdb mkpart primary ext4 20.0GB 100%
Information: You may need to update /etc/fstab.

怎样用 parted 列出所有的分区

你也许注意到了,我们已经在上述步骤中创建了三个分区,如果你想要列出所有在硬盘上可用的分区,可以使用 print 命令。

$ sudo parted /dev/sdb print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
 1 1049kB 10.0GB 9999MB primary ext4
 2 10.0GB 20.0GB 9999MB primary ext4
 3 20.0GB 53.7GB 33.7GB primary ext4

怎样用 mkfs 格式化分区

用户可以用 mkfs 命令格式化分区。下面的步骤会用 mkfs 来格式化分区。

$ sudo mkfs.ext4 /dev/sdb1
mke2fs 1.43.4 (31-Jan-2017)
Creating filesystem with 2621440 4k blocks and 656640 inodes
Filesystem UUID: 415cf467-634c-4403-8c9f-47526bbaa381
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

同样的。

$ sudo mkfs.ext4 /dev/sdb2
$ sudo mkfs.ext4 /dev/sdb3

创建必要的文件夹然后将这些分区挂载在上面。

$ sudo mkdir /par1 /par2 /par3
$ sudo mount /dev/sdb1 /par1
$ sudo mount /dev/sdb2 /par2
$ sudo mount /dev/sdb3 /par3

运行下列命令来检查是否成功挂载上新创建的分区。

$ df -h /dev/sdb[1-3]
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 9.2G 37M 8.6G 1% /par1
/dev/sdb2 9.2G 37M 8.6G 1% /par2
/dev/sdb3 31G 49M 30G 1% /par3

怎样检查硬盘空闲空间

运行下列命令来检查硬盘上的空闲空间,这块硬盘上有 25.7 GB 的空闲空间。

$ sudo parted /dev/sdb print free
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
 32.3kB 1049kB 1016kB Free Space
 1 1049kB 10.0GB 9999MB primary ext4
 2 10.0GB 20.0GB 9999MB primary ext4
 3 20.0GB 28.0GB 8001MB primary ext4
 28.0GB 53.7GB 25.7GB Free Space

怎样使用 parted 命令来重新调整分区大小

parted 允许用户重新调整分区大小。不过我已在文章的开头说了,不要缩小分区大小,不然会有许多错误。

运行下列命令来检查硬盘分区以及所有可用空间。 可以看到硬盘上有 25.7GB 的可用空间。

$ sudo parted /dev/sdb print free
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
 32.3kB 1049kB 1016kB Free Space
 1 1049kB 10.0GB 9999MB primary ext4
 2 10.0GB 20.0GB 9999MB primary ext4
 3 20.0GB 28.0GB 8001MB primary ext4
 28.0GB 53.7GB 25.7GB Free Space

运行下列命令来重新调整分区大小。 我们将要重新调整(增加)分区 3 的结束位置,从 28GB33GB

$ sudo parted [Disk Name] [resizepart] [Partition Number] [Partition New End Size]

$ sudo parted /dev/sdb resizepart 3 33.0GB
Information: You may need to update /etc/fstab.

运行下列命令来确认分区是否已经扩容。可以看到,分区 3 已经从 8GB 增加到 13GB

$ sudo parted /dev/sdb print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
 1 1049kB 10.0GB 9999MB primary ext4
 2 10.0GB 20.0GB 9999MB primary ext4
 3 20.0GB 33.0GB 13.0GB primary ext4

重新调整文件系统大小。

$ sudo resize2fs /dev/sdb3
resize2fs 1.43.4 (31-Jan-2017)
Resizing the filesystem on /dev/sdb3 to 3173952 (4k) blocks.
The filesystem on /dev/sdb3 is now 3173952 (4k) blocks long.

最后,确认分区是否已经扩容。

$ df -h /dev/sdb[1-3]
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 9.2G 5.1G 3.6G 59% /par1
/dev/sdb2 9.2G 2.1G 6.6G 24% /par2
/dev/sdb3 12G 1.1G 11G 10% /par3

怎样用 parted 删除分区

我们用 rm 命令方便地删除未使用的分区(如果该分区不会再被用到了)。下列步骤中,我们将会删除分区 3 (/dev/sdb3)。

$ sudo parted [Disk Name] [rm] [Partition Number]

$ sudo parted /dev/sdb rm 3
Warning: Partition /dev/sdb3 is being used. Are you sure you want to continue?
Yes/No? Yes
Error: Partition(s) 3 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use.
You should reboot now before making further changes.
Ignore/Cancel? Ignore
Information: You may need to update /etc/fstab.

我们也可以用下列的命令检查。可以看到,分区 3 已经被成功移除。

$ sudo parted /dev/sdb print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
 1 1049kB 10.0GB 9999MB primary ext4
 2 10.0GB 20.0GB 9999MB primary ext4

怎样用 parted 命令设置/更改分区标志

我们可以用下列的命令来轻易更改分区的标志。 我们将对 /dev/sdb2 设置 lvm 标志。

$ sudo parted [Disk Name] [set] [Partition Number] [Flags Name] [Flag On/Off]

$ sudo parted /dev/sdb set 2 lvm on
Information: You may need to update /etc/fstab.

我们可以列出分区来验证这次的更改。

$ sudo parted /dev/sdb print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
 1 1049kB 10.0GB 9999MB primary ext4
 2 10.0GB 20.0GB 9999MB primary ext4 lvm

如果你想知道可用的标志,只需要用如下的命令。

$ (parted) help set
 set NUMBER FLAG STATE change the FLAG on partition NUMBER

    NUMBER is the partition number used by Linux. On MS-DOS disk labels, the primary partitions number from 1 to 4, logical partitions from 5 onwards.
 FLAG is one of: boot, root, swap, hidden, raid, lvm, lba, hp-service, palo, prep, msftres, bios_grub, atvrecv, diag, legacy_boot, msftdata, irst, esp
 STATE is one of: on, off

如果你想知道 parted 的其它可用命令, 只需要去到 help 页面。

$ sudo parted
GNU parted 3.2
Using /dev/sda
Welcome to GNU parted! Type 'help' to view a list of commands.
(parted) help
 align-check TYPE N check partition N for TYPE(min|opt) alignment
 help [COMMAND] print general help, or help on COMMAND
 mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
 mkpart PART-TYPE [FS-TYPE] START END make a partition
 name NUMBER NAME name partition NUMBER as NAME
 print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found partitions, or a particular partition
 quit exit program
 rescue START END rescue a lost partition near START and END
 resizepart NUMBER END resize partition NUMBER
 rm NUMBER delete partition NUMBER
 select DEVICE choose the device to edit
 disk_set FLAG STATE change the FLAG on selected device
 disk_toggle [FLAG] toggle the state of FLAG on selected device
 set NUMBER FLAG STATE change the FLAG on partition NUMBER
 toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER
 unit UNIT set the default unit to UNIT
 version display the version number and copyright information of GNU parted
(parted) quit

via: https://www.2daygeek.com/how-to-manage-disk-partitions-using-parted-command/

作者:Magesh Maruthamuthu 译者:zyk2290 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

你有没有试过使用 fdisk 对大于 2TB 的硬盘进行分区,并且纳闷为什么会得到需要使用 GPT 的警告? 是的,你看到的没错。我们无法使用 fdisk 对大于 2TB 的硬盘进行分区。

在这种情况下,我们可以使用 parted 命令。它的主要区别在于 fdisk 使用 DOS 分区表格式而 parted 使用 GPT 格式。

提示:你可以使用 gdisk 来代替 parted

在本文中,我们将介绍如何将大于 2TB 的新磁盘添加到现有的 Linux 服务器中(如 RHEL/CentOS 或 Debian/Ubuntu)中。

我使用的是 fdiskparted 来进行此配置。

首先使用 fdisk 命令列出当前的分区详细信息,如图所示。

# fdisk -l

List Linux Partition Table

列出 Linux 分区表

为了本文的目的,我加了一块 20GB 的磁盘,这也可以是大于 2TB 的磁盘。在你加完磁盘后,使用相同的 fdisk 命令验证分区表。

# fdisk -l

List New Partition Table

列出新的分区表

提示:如果你添加了一块物理磁盘,你可能会发现分区已经创建了。此种情况下,你可以在使用 parted 之前使用 fdisk 删除它。

# fdisk /dev/xvdd

在命令中使用 d 开关删除分区,使用 w 保存更改并退出。

Delete Linux Partition

删除 Linux 分区

重要:在删除分区时你需要小心点。这会擦除磁盘上的数据。

现在是使用 parted 命令分区新的磁盘了。

# parted /dev/xvdd

将分区表格式化成 GPT

(parted) mklabel gpt

创建主分区并分配磁盘容量,这里我使用 20GB (在你这里可能是 2TB)。

(parted) mkpart primary 0GB 20GB

Create Partition using Parted

使用 parted 创建分区

出于好奇,让我们用 fdisk 看看新的分区。

# fdisk /dev/xvdd

Verify Partition Details

验证分区细节

现在格式化并挂载分区,并在 /etc/fstab 添加相同的信息,它控制在系统启动时挂载文件系统。

# mkfs.ext4 /dev/xvdd1

Format Linux Partition

格式化 Linux 分区

一旦分区格式化之后,是时候在 /data1 下挂载分区了。

# mount /dev/xvdd1 /data1

要永久挂载,在 /etc/fstab 添加条目。

/dev/xvdd1     /data1      ext4      defaults  0   0

重要:要使用 GPT 分区格式需要内核支持。默认上 RHEL/CentOS 的内核已经支持 GPT,但是对于 Debian/Ubuntu,你需要在修改配置之后重新编译内核。

就是这样了!在本文中,我们向你展示了如何使用 parted 命令。与我们分享你的评论和反馈。


作者简介:

我在包括 IBM-AIX、Solaris、HP-UX 以及 ONTAP 和 OneFS 存储技术的不同平台上工作,并掌握 Oracle 数据库。


via: http://www.tecmint.com/add-disk-larger-than-2tb-to-an-existing-linux/

作者:Lakshmi Dhandapani 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出