前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 下的 Fdisk 命令

Linux 下的 Fdisk 命令

作者头像
雪梦科技
修改2020-05-27 12:25:17
4.6K0
修改2020-05-27 12:25:17
举报
文章被收录于专栏:ITCoderITCoder

文章目录

本文最先发布在:https://cloud.tencent.com/developer/article/1631000

在安装一个新的 SSD 固态硬盘或者机械硬盘后,你的第一件事情就是去给它分区。在你能够格式化硬盘并且保存文件之前,硬盘至少要分一个区。

在 Linux,有几个工具可以用来创建分区,fdisk是最常用的一个。

在本文中,我们将会讨论fdisk命令。

fdisk是一个菜单驱动的命令行工具,它允许你在硬盘上创建并且维护分区表。

你必须清楚fdisk是一个非常危险的工具,并且应该非常小心谨慎地使用它。仅仅 root 或者有 sudo 权限的用户可以维护分区表。

一、列出分区

想要列出一个设备中的分区表,运行fdisk命令,加上-l选项,再加上设备名称。例如,列出/dev/sda分区表,和分区,输入:

代码语言:txt
复制
fdisk -l /dev/sda

如果没有给出参数,fdisk将会打印出/proc/partitions文件中列出的所有设备的分区表。

代码语言:txt
复制
fdisk -l

输出:

代码语言:txt
复制
Disk /dev/nvme0n1: 232.91 GiB, 250059350016 bytes, 488397168 sectors
Disk model: Samsung SSD 960 EVO 250GB               
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: 6907D1B3-B3AB-7E43-AD20-0707A656A1B5

Device            Start       End   Sectors   Size Type
/dev/nvme0n1p1     2048   1050623   1048576   512M EFI System
/dev/nvme0n1p2  1050624  34605055  33554432    16G Linux swap
/dev/nvme0n1p3 34605056 488397134 453792079 216.4G Linux filesystem


Disk /dev/sda: 465.78 GiB, 500107862016 bytes, 976773168 sectors
Disk model: WDC WD5000AAKS-0
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: 0x0001cca3

Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1        2048 976771071 976769024 465.8G 83 Linux

上面的输出显示了挂载在系统上的所有设备的分区表。通常,SATA 设备命名是以/dev/sd[a-z]为样式,而 NVMe 设备命名是以/dev/nvme[1-9]n[1-9]为样式。

二、创建分区表

想要对磁盘驱动器进行分区,运行fdisk加上设备名字。在这个例子中,我们将会使用/dev/sdb:

代码语言:txt
复制
fdisk /dev/sdb

命令提示符将会改变,开启fdisk对话模式:

代码语言:txt
复制
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.

Command (m for help):
代码语言:txt
复制
在你使用`w`命令写入之前,这些对分区表的修改都不会被应用。使用`q`命令你可以退出`fdisk`而不保存修改。

想要获得所有可用的命令,输入m

代码语言:txt
复制
m

如果你正在一个新的磁盘驱动器上分区,在创建分区之前,你需要创建一个分区表。如果你的设备有分区表,你可以跳过这个步骤,保留之前的分区表。

fdisk支持多种分区方案。MBR 和 GPT 是两种最流行的分区方案标准,它们在磁盘驱动器上以不同的方式保存分区信息。GPT 是一个新的标准,它比 MBR 拥有更多优点。你在考虑选用哪一种分区标准的时候,应该考虑以下几点:

  • 使用 MBR 以旧的 BIOS 模式 从硬盘启动
  • 使用 GPT 以 UEFI 模式 从硬盘启动
  • MBR 标准支持在高达2TB 大小的磁盘上创建分区。如果你拥有 2TB 或者更大容量的硬盘,使用 GPT
  • MBR 有4个主要分区的限制。如果你需要更多分区,其中一个主分区可以被设置成扩展分区,并且使用额外的逻辑分区。使用 GPT,你可以拥有高达 128个区分。 GPT 不支持扩展分区或者逻辑分区。

在这个例子中,我们将会使用一个 GPT 分区表。

输入g来创建一个空的 GPT 分区表:

代码语言:txt
复制
g

输出应该像下面这样:

代码语言:txt
复制
Created a new GPT disklabel (GUID: 4649EE36-3013-214E-961C-51A9187A7503).

下一步就是创建新分区。

我们将会创建两个分区。第一个分区 100GB,第二个分区将会占用剩下的磁盘空间。

运行n命令来创建一个新分区:

代码语言:txt
复制
n

你将会被提示输入分区号码,按"Enter"使用默认的值(1):

代码语言:txt
复制
Partition number (1-128, default 1):

下一步,这个命令将会询问你指定第一个扇区。通常我们推荐使用默认值为第一个值。按"Enter"使用默认的值(2048):

代码语言:txt
复制
First sector (2048-500118158, default 2048):

下一个提示,你需要输入最后一个扇区。你可以使用一个绝对值作为最后一个扇区,或者相对于起始扇区的相对值,使用+符号再加上分区大小。分区大小可以指定为 千字节 (K), 兆字节 (M), 吉字节 (G), 太字节 (T), or 皮字节 (P)。

输入+100G设置分区大小为 100 GB:

代码语言:txt
复制
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-500118158, default 500118158): +100G

输出:

代码语言:txt
复制
Created a new partition 1 of type 'Linux filesystem' and of size 100 GiB.

默认情况下,新分区类型被设置为“Linux filesystem”,它能满足大部分场景。如果你想修改类型,输入l获取分区类型,并且输入t来修改类型。

创建第二个分区,将会占用剩下的磁盘空间:

代码语言:txt
复制
n

使用默认的磁盘分区符,起始扇区和结束扇区。这将会创建一个分区,分配磁盘上剩下所有可用的空间。

代码语言:txt
复制
Partition number (2-128, default 2): 
First sector (209717248-625142414, default 209717248): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (209717248-625142414, default 625142414): 

一旦创建分区完成,使用p命令来显示新分区表:

代码语言:txt
复制
p

输出如下:

代码语言:txt
复制
Disk /dev/sdb: 298.9 GiB, 320072933376 bytes, 625142448 sectors
Disk model: nal USB 3.0     
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: F8365250-AF58-F74E-B592-D56E3A5DEED1

Device         Start       End   Sectors   Size Type
/dev/sdb1       2048 209717247 209715200   100G Linux filesystem
/dev/sdb2  209717248 625142414 415425167 198.1G Linux filesystem
代码语言:txt
复制
如果你想删除一个分区,使用`d`命令。

保存修改,输入w命令:

代码语言:txt
复制
w

这个命令将会将分区表写入磁盘,并且退出fdisk命令。

代码语言:txt
复制
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

内核将会读取设备分区表,不需要重新启动系统。

三、激活分区

现在分区已经被创建,下一步就是格式化分区,并且将他们挂载到系统的目录中。

我们会将它们都格式化为 ext4:

代码语言:txt
复制
sudo mkfs.ext4 -F /dev/sdb1
sudo mkfs.ext4 -F /dev/sdb2

输出如下:

代码语言:txt
复制
mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 51928145 4k blocks and 12984320 inodes
Filesystem UUID: 63a3457e-c3a1-43f4-a0e6-01a7dbe7dfed
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872

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

在这个例子中,我们将分区挂载到/mnt/audio/mnt/video目录。

使用 mkdir 创建挂载点:

代码语言:txt
复制
sudo mkdir -p /mnt/audio /mnt/video 

挂载新分区:

代码语言:txt
复制
sudo mount /dev/sdb1 /mnt/audio
sudo mount /dev/sdb2 /mnt/video 

分区将会一直被挂载直到你卸载他们,或者关闭机器。想要在你的 Linux 系统启动时,自动挂载一个分区,需要在/etc/fstab文件中定义挂载选项。

就这些!现在你可以使用新分区来存储文件。

四、总结

fdisk 是一个用来创建分区的工具。想要获得更多关于fdisk命令的信息,在终端中输入man fdisk

如果你有任何疑问,请通过以下方式联系我们:

微信: sn0wdr1am86

微信群: 加上面的微信,备注微信群

QQ: 3217680847

QQ 群: 82695646

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020年05月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、列出分区
  • 二、创建分区表
  • 三、激活分区
  • 四、总结
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档