fdisk是Linux的命令行分区表编辑器。它可用于创建,销毁和修改磁盘分区。
查看英文版
1 fdisk 运行系统环境
2 fdisk 说明
3 fdisk 语法
4 fdisk 例子
Linux
fdisk是一个菜单驱动的程序,用于创建和操作分区表。它了解DOS类型的分区表和BSD类型或SUN类型的磁盘标签。
fdisk无法理解GPT(GUID分区表),并且不适用于大型分区。在这些情况下,请使用更高级的GNU parted。
fdisk不使用DOS兼容模式,默认情况下将柱面作为显示单位。可以使用-c = dos -u = cylinders命令行选项启用旧的DOS行为。
硬盘可以分为一个或多个逻辑磁盘,称为分区。该分区记录在分区表中,该分区表位于磁盘的扇区 0中。在BSD世界中,人们谈论“磁盘片”和“磁盘标签”。
Linux需要至少一个分区,专门用于其根文件系统。它可以使用交换文件和/或交换分区,但是后者效率更高。因此,通常人们会想要第二个Linux分区专门用作交换分区。在与Intel兼容的硬件上,引导系统的BIOS通常只能访问磁盘的前1024个柱面。因此,拥有大量磁盘的人通常会创建第三个分区,该分区通常要挂载在/ boot上,该分区又大几个MB,以存储内核映像和启动时需要的一些辅助文件,以确保BIOS可以访问此文件。使用安全性,简化管理和备份或测试的原因可能要使用超过最小数量的分区。
查看英文版
fdisk [-uc] [-b sectorsize] [-C cyls] [-H heads] [-S sects] device
fdisk -l [-u] [device...]
fdisk -s partition...
fdisk -v
fdisk -h
-b sectorsize |
指定磁盘的扇区大小。有效值是512,1024,2048或4096。最近的内核知道扇区大小。仅在旧内核上使用此功能,或覆盖内核的思想。从util-linux-2.17开始,fdisk区分逻辑扇区大小和物理扇区大小。此选项更改两个扇区大小来sectorsize。 |
-c[=mode] |
指定兼容模式“ dos ”或“ nondos ”。默认为非DOS模式。为了向后兼容,可以使用不带mode参数的选项。在这种情况下,将使用默认值。请注意,可选模式参数不能与-c选项用空格分隔,正确的格式例如是' -c = dos '。 |
-C cyls |
指定磁盘的柱面数。这是一件很奇怪的事情,但是如果需要的话,这个选项就可以完成。 |
-H heads |
指定磁盘的磁头数。不是物理编号,而是用于分区表的编号。合理的值为255和16。 |
-S sects |
指定磁盘每个磁道的扇区数。不是物理编号,而是用于分区表的编号。合理值为63。 |
-h |
打印帮助,然后退出。 |
-l |
列出指定设备的分区表,然后退出。如果未提供任何设备,则使用/ proc / partitions中提到的设备(如果存在)。 |
-u[=unit] |
列出分区表时,请在“ 扇区 ”或“ 柱面 ”中显示大小。默认设置是显示扇区大小。为了向后兼容,可以使用不带units参数的选项。在这种情况下,将使用默认值。注意,可选的单位参数不能与-u选项用空格分隔;正确的格式例如是' -u = cylinders '。 |
-v |
打印版本信息,然后退出。 |
设备通常是/ dev / sda,/ dev / sdb等。设备名称指的是整个磁盘。没有libata(Linux内核内部用于支持ATA主机控制器和设备的库)的旧系统会在IDE和SCSI磁盘之间产生差异。在这种情况下,设备名称将为/ dev / hd *(IDE)或/ dev / sd *(SCSI)。
分区是设备名称,后跟分区号。例如,/ dev / sda1是系统中第一个硬盘上的第一个分区。
一个BSD / SUN类型的磁盘标签可以描述8个分区,其中第三个应该是“整个磁盘”分区。不要在柱面0处启动实际上使用其第一个扇区的分区(例如交换分区),因为这会破坏disklabel。
IRIX / SGI类型的磁盘标签可以描述16个分区,其中的第十一个分区应该是整个“卷”分区,而第九个分区应该标记为“卷标头”。卷标头还将覆盖分区表,即,它从块零开始,默认情况下扩展到五个柱面。卷标头中的剩余空间可由标头目录条目使用。卷头不能有任何分区重叠。另外,请勿更改其类型或在其上创建一些文件系统,因为这样会丢失分区表。仅当在IRIX / SGI计算机上的Linux或Linux下的IRIX / SGI磁盘上使用Linux时,才使用这种类型的标签。
DOS类型的分区表可以描述无限数量的分区。在扇区0中,有描述4个分区(称为“主要”)的空间。其中之一可以是扩展分区。这是一个保存逻辑分区的盒子,在链接的扇区列表中找到描述符,每个描述符位于相应的逻辑分区之前。存在或不存在的四个主分区的编号为1-4。逻辑分区从5开始编号。
在DOS类型的分区表中,起始偏移量和每个分区的大小以两种方式存储:作为扇区的绝对数量(以32位给定),以及作为圆柱/磁头/扇区三重(以10 + 8给定) +6位)。前者还可以;如果使用512字节的扇区,则最多可以工作2 TB。后者有两个问题。首先,仅当已知磁头的数量和每个磁道的扇区数时才能填充这些C / H / S字段。其次,即使我们知道这些数字应该是多少,可用的24位也不足够。DOS仅使用C / H / S,Windows同时使用,Linux从不使用C / H / S。
如果可能,fdisk将自动获取磁盘几何。这不一定是物理磁盘的几何形状(实际上,现代磁盘实际上并没有像物理几何形状那样的东西,当然也不能以简单的Cylinders / Heads / Sectors形式描述),而是MS-DOS的磁盘几何形状用于分区表。
通常,默认情况下一切正常,并且如果Linux是磁盘上的唯一系统,则没有问题。但是,如果必须与其他操作系统共享磁盘,则通常最好让来自另一个操作系统的fdisk至少构成一个分区。当Linux启动时,它会查看分区表,并尝试推断出与其他系统良好协作所需的(伪)几何形状。
每当打印出分区表时,都会对分区表条目执行一致性检查。此检查将验证物理和逻辑起点和终点是否相同,并且每个分区都在圆柱边界上开始和结束(第一个分区除外)。某些版本的MS-DOS创建的第一个分区不是从圆柱边界开始,而是在第一个圆柱的扇区2上开始。从柱面1开始的分区不能从柱面边界开始,但是除非您的计算机上装有OS / 2,否则这不太可能引起困难。
在更新分区表时,在退出之前执行sync()和ioctl(BLKRRPART)(从磁盘重新读取分区表)。很久以前,使用fdisk后必须重新启动。不再需要;实际上,应该注意的是内核和磁盘硬件都可以缓冲数据,因此在使用fdisk分区后立即重新引导可能是不可取的。
DOS 6.x FORMAT命令在分区的数据区域的第一个扇区中查找某些信息,并将此信息视为比分区表中的信息更可靠。DOS FORMAT期望DOS FDISK会在大小发生变化时清除分区数据区域的前512个字节。即使给出了/ U标志,DOS FORMAT也会查看这些额外信息:这被认为是DOS FORMAT和DOS FDISK中的错误。
底线是,如果您使用cfdisk或fdisk更改DOS分区表条目的大小,则在使用DOS FORMAT格式化分区之前,还必须使用dd将该分区的前512个字节清零。例如,如果使用cfdisk为/ dev / sda1创建DOS分区表条目,则(退出fdisk或cfdisk并重新引导Linux以使分区表信息有效之后),可以使用命令“ dd if = / dev / zero of = / dev / sda1 bs = 512 count = 1 “将分区的前512个字节清零。
如果您使用 dd命令,请格外小心,小的错字可能会使磁盘上的所有数据失效。
为了获得最佳结果,应始终使用特定于操作系统的分区表程序。例如,您应使用DOS FDISK程序创建DOS分区,并使用Linux fdisk或Linux cfdisk程序创建Linux分区。
查看英文版
您必须具有root用户访问权限,此命令才能起作用。
fdisk -l
列出您登录的计算机的分区信息。以下是此输出的示例:
Disk /dev/sda: 250.0 GB, 250059350016 bytes 255 heads, 63 sectors/track, 30401 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 191 1534176 83 Linux /dev/sda2 192 2231 16386300 83 Linux /dev/sda3 2232 3506 10241437+ 83 Linux /dev/sda4 3507 30401 216034087+ 5 Extended /dev/sda5 3507 3767 2096451 82 Linux swap / Solaris /dev/sda6 3768 3832 522081 83 Linux /dev/sda7 3833 30401 213415461 83 Linux Disk /dev/sdb: 250.0 GB, 250059350016 bytes 255 heads, 63 sectors/track, 30401 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 * 1 30401 244196001 83 Linux
查看英文版
fc | fg | fgrep | findsmb | finger | fmt | fold | for | free | file | fuser |
未知的网友