0

Linux如何创建磁盘/硬盘分区/分区表

 1 year ago
source link: https://www.myfreax.com/how-to-create-disk-hard-disk-partition-partition-table-in-linux/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
更新于 2022/06/16 |  创建于 2022/06/16

Linux如何创建磁盘/硬盘分区/分区表

Linux如何创建磁盘/硬盘分区/分区表

fdisk支持几种分区方案。MBR和GPT是两个最受欢迎的分区标准方案,它们以不同的方式将分区信息存储在驱动器上。

GPT是允许使用的较新标准,并且比MBR具有许多优势。 在选择要使用的分区标准时你需要考虑的是。

你BIOS是否支持GPT分区模式,如果不支持GPT则使用MBR。在近年的生产的计算机内置BIOS基本都会支持GPT。

如果BIOS使用了UEFI那么你的计算机时支持GPT的。如果没有大概率时不支持GPT分区,这时你应该使用MBR分区。

MBR标准最多支持创建2 TiB磁盘分区,如果磁盘的容量为2 TiB或更大,请使用GPT。

MBR的限制为4个主分区。 如果需要更多分区,则可以将一个主分区设置为扩展分区,其他都设置为逻辑分区。

使用GPT,最多可以有128个分区。 GPT不支持扩展分区或逻辑分区。

如果你需要对已经存在分区表磁盘进行分区,可参考我们的教程如何创建磁盘分区在Linux

在开始对新的磁盘/硬盘进行分区之前,我需要知道磁盘在计算机上的名称。sudo fdisk -l可以帮助我们找到未创建分区的磁盘。

通常,如果一个磁盘不存在任何分区,那么该磁盘就是我们要创建新分区的磁盘,在本教程的示例中,存在一个未分区的磁盘/dev/sdb。即计算机上第二块磁盘。

注意你的计算机上磁盘可能会跟教程中磁盘命名可能会一样,请根据你自己的实际做出更改。

如果已经创建分区的磁盘将会/dev/sda磁盘一样存在多个分区的名称,如/dev/sda1等。

sudo fdisk -l

#输出
Disk /dev/sda: 200 GiB, 214748364800 bytes, 419430400 sectors
Device     Boot   Start       End   Sectors   Size Id Type
/dev/sda1  *       2048   1050623   1048576   512M  b W95 FAT32
/dev/sda2       1052670 419428351 418375682 199.5G  5 Extended
/dev/sda5       1052672 419428351 418375680 199.5G 83 Linux

Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

现在我们已经找到需要创建分区的新磁盘,接下来使用sudo fdisk /dev/sdb命令开始进行分区。

sudo fdisk /dev/sdb
[sudo] password for myfreax:
Welcome to fdisk (util-linux 2.34).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 0x3d5b6306.

当你进入fdisk命令的会话中时,并提示你作出的任何更改都保存在内存中,直到你使用write命令写设备,即缩写的w命令。

你在fdisk命令执行的子命令都不会马上写入到磁盘中。只有你明确的调用write命令才会写入到磁盘。

如果你在fdisk命令中做了其中一个错误的操作,但又不想一步一步撤销。或者你对当前操作不满意可以使用q命令直接退出,将不会保存你对磁盘的任何操作。

fdisk除了提示命令外,还提示你Device does not contain a recognized partition table.即设备不包含一个可识别的分区表。这表示该磁盘不存在分区表或者分区表损坏,不可识别。

现在你已经进入fdisk命令的会话中,如果要获取所有可用命令的列表或者帮助,可以输入m命令。

Welcome to fdisk (util-linux 2.31.1).
  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   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



Command (m for help):

在本教程我们将使用GPT作为分区表,因为GPT比MBR更先进与优秀。另一方面现代的操作系统都已支持GPT分区表方案。

在fdisk会话中运行命令g即可创建GPT分区表。

Command (m for help): g
Created a new GPT disklabel (GUID: 1C147272-34A2-2A42-9426-8BFC977978C1).

现在分区表已创建,下一步是创建新分区。我们将创建一分区。 第一个大小为10 GB。

你可使用fdisk的n命令以创建新分区,当你在fdisk会话中按下n键时,系统会提示您输入分区号。按回车键使用默认值1

我们不建议更改分区号,除非你明白自己在做什么。这个对于你在日常使用意义并不大,因此不需要更改它。

Command (m for help): n

Partition number (1-128, default 1): 按Enter使用默认值1

接下来,命令将要求您指定第一个扇区。 通常,始终建议对第一个值使用默认值。 按Enter以使用默认值2048

First sector (2048-500118158, default 2048):

此时你将进入另一个提示,提示输入最后的扇区。如果直接填写结束的扇区,则需要计算结束扇区到开始扇区来确定大小,默认是最后未使用空间的最后一个扇区。

我们不建议你直接你直接使用扇区值进行分区。可以使用+500M,20G,1T,1P的单位确定分区的大小。

例如在我们教程中,我们将使用+10G的方式来创建10G的新分区,输出将如下所示:

Command (m for help): n
Partition number (1-128, default 1):
First sector (2048-41943006, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943006, default 41943006): +10G

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

如果你需要所有未使用的空间作为一个分区,不要执行+10G的输入,直接回车即可使用磁盘剩余空间作为分区。

当你按enter回车键后,将打印消息Created a new partition 6 of type 'Linux' and of size 10 GiB.然后退出n命令。

现在,你已经创建一个新的10G大小的分区。可以使用p命令打印当前设备的分区表,验证刚创建的分区是否存。

如你的的操作一切执行正常,没有任何错误,你应该会看到当前设备分区表中存在一个10G的分区。输出如下所示:

Device     Start      End  Sectors Size Type
/dev/sdb1   2048 20973567 20971520  10G Linux filesystem

如正确无误,请使用w命令,保存分区表并写入到磁盘中。将提示你分区表已经修改并同步。然后再按q命令退出fdisk会话。

当分区创建完成后,我们需要对分区进行格式化。才可以使用该分区的空间。我们建议你使用ext4文件系统格式以创建的分区。

以下mkfs.ext4命令将使用ext4格式文件系统,格式分区10G分区/dev/sdb1

sudo mkfs.ext4 /dev/sdb1

格式化完成后,Linux系统不会像windows系统一样会自动挂载新的分区。如果你需要马上使用新创建的分区。则需要手动挂载分区/dev/sdb1到指定的挂载点中。

mount是在Linux和UNIX操作系统中的命令。允许你挂载设备到指定的目录中。 也可用于SD卡,USB存储器,DVD和其他可移动存储设备文件系统的挂载。

在挂载设备之前,我还需要先使用mkdir命令创建挂载点。按照Linux惯例,创建挂载通常是在/mnt/目录下。

运行以下mkdir命令创建挂载点,使用chown命令将挂载点更为当前用户所有,chgrp命令更改为当前用户组所有。如果不改变挂载点的权限,挂载分区只有root用户可读写。

最后使用mount命令挂载指定设备/dev/sdb1到/mnt/sdb1目录:

sudo mkdir -p /mnt/sdb1
sudo chown -R $USER /mnt/sdb1
sudo chgrp -R $USER /mnt/sdb1
mount /dev/sdb1 /mnt/sdb1

现在你已经完成了分区的挂载。

分区将保持挂载状态,直到您使用umount命令卸载它或者关闭重启计算机。要在Linux系统启动时自动挂载分区,你需要在/etc/fstab文件中定义挂载配置选项。

/etc/fstab文件存储着文件系统的静态信息,可用于定义磁盘分区,各种其他块设备或远程文件系统,告知Linux内核如何在挂载这些设备文件。

使用你喜欢的文件编辑器修改文件/etc/fstab,在本教程中我们将使用vim编辑器打开文件/etc/fstab

请以root或具有sudo权限的用户运行以下vim命令打开文件/etc/fstab

sudo vim /etc/fstab

复制粘帖以下内容到文件/etc/fstab

/dev/sdb1  /mnt/sdb1 ext4 id=1000,gid=1000  0 2

保存文件并退出vim编辑器。其中选项id是你当前用户的id,gid是你当前用户的gid。设置uid和gid是为了让当前用户对挂载的分区具有所有权。

创建文件或者已经存在的文件。都将权限修改为id=1000的用户所有。至此你已经完成所有步骤。

fdisk是用于创建分区方案的命令行工具。有关fdisk命令的更多信息,请在终端中键入man fdisk

如果您有任何问题或反馈,请随时发表评论。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK