fdisk - Linux分区表操作工具软件
总览
fdisk [-u]设备名
fdisk -l [-u] [设备名 ...]
fdisk -s分区 ...
fdisk -v
描述
硬盘可以被分成一个或多个逻辑磁盘,称为 分区。 这些分区信息都存放在硬盘0扇区的 分区表 中。
在 BSD 风格中,分区被称为“磁盘片”和“磁盘标签”
Linux 至少需要一个分区,即用做它的 root 文件系统。 Linux 可以使用交换文件和/或交换分区,交换分区更有效。因此,通常用户会创建第二个 Linux 分区供交换分区使用。在 Intel 兼容的硬件上,启动系统的 BIOS 往往只能访问 1024 柱面之前的硬盘。因此,使用大硬盘的用户通常创建第三个只有几兆大小的小分区,通常用来装配在 /boot ,用来存放内核映象和一些其它启动时需要的附属文件,所以应确保此分区必须是在BIOS可访问的部分。出于安全方面的考虑、管理方面的原因、备份的需要或为了某些测试,也可以将一个硬盘分成更多的分区使用。
fdisk (以第一种形式调用)是一个以菜单问答形式出现的用来创建和修改分区的程序。它可以辩认 DOS 类型的分区表和 BSD 或 SUN 类型的磁盘标签。
设备 通常是下列之一:
- /dev/hda /dev/hdb /dev/sda /dev/sdb
(/dev/hd[a-h] 指 IDE 硬盘,/dev/sd[a-p] 指 SCSI 硬盘, /dev/ed[a-d] 指 ESDI 硬盘,/dev/xd[ab] 指 XT 硬盘)。设备名指整个硬盘设备。
分区 是在 设备名 后跟一个分区号。例如: /dev/hda1 是指系统在第一个 IDE 硬盘上的第一个分区。 IDE 硬盘可以最多创建 63 个分区,SCSI 可以创建 15 个。又见 /usr/src/linux/Documnetation/devices.txt。
一个 BSD/SUN 风格的磁盘标签可以描述 8 个分区,其中第三个应该是“整个磁盘”分区。不要在零柱面使用那些的确使用其第一扇区的分区,(比如交换分区)因为这将损坏磁盘标签。
一个 IRIX/SGI 风格的磁盘标签可以描述 16 个分区,其中第十一个应该是完整“卷标”分区,而第九个应该被标成“卷标头”。卷标头将覆盖分区表,即,它从零块开始并缺省时延伸 5 个柱面。卷标头中余下的空间可以用来存放头部目录记录信息。不要有任何分区与此卷标头重叠。同样,也不要改变它的类形和在其中创建任何文件系统,因为这样做将丢失分区表信息。只有当将 Linux 安装在 IRIX/SGI 机器上或在 Linux 中使用 IRIX/SGI 磁盘时才会使用这种类形的标签。
一个 DOS 风格的分区表可以描述无限的分区。零扇区用来存放 4 个分区(称为主分区)的描述信息。其中可以有一个分区是扩展分区;此扩展分区也就是存储各逻辑分区地方,是一个在组成链表的扇区里存放的描述符,每个描述符都是一个对应分区的开头.四个主分区,不管是否存在,都用数字 1-4 编号,而逻辑分区以 5 开始。
在 DOS 风格的分区表中,开始地址偏移量和每个分区的大小是以两种不同的方式来存放的:以扇区数的绝对值来描述(占 32 位)和以柱面、磁头、扇区三个一组的形式(占 10+8+6 个位)来描述。前一种描述很好 - 如果每扇区 512 个字节的情况,这种方式可描述到 2TB 的大小。后一种方式有两个不同的问题。第一个是这种 C/H/S 方式必须是在磁头数和每磁道扇区数都已知的情况下才能使用。第二个是就算我们已经知道了这些数字,而只用 24 位来描述这些信息也是不够的。 DOS 只使用这种 C/H/S 的方式,Windows 则两个都用,Linux 则不使用 C/H/S 的方式。
如果可能, fdisk 会自动获得磁盘的几何结构。这不一定是磁盘的物理结构(当然,现在的磁盘没有真正的物理结构,同样也不能以简单的柱面/磁头/扇区的形式来描述),而是 MS-DOS 用来供分区表使用的几何结构。
通常,缺省时这些都将工作得很好,而且,如果磁盘上只有一个 Linux 操作系统时也不会有任何问题。然而,如果磁盘上还有其它操作系统,那么,用其它操作系统的 fdisk 来生成其自身使用的至少一个分区是比较好的选择。当Linux启动的时侯,它会扫描分区表,并由此推出和其它共存操作系统友好合作所需的(伪)几何结构。
当打印一个分区表时,系统会对分区表进行一次一至性检查。这些检查会验证磁盘几何结构和物理地址的开始、结束、指向和标识,同时在柱面的边界检查分区的开始和结束。(除了第一个分区)
一些版本的 MS-DOS 在创建第一个分区时并不是从柱面边界的开始处,而是从第一柱面的第 2 扇区处开始。从柱面 1 开始的分区不能直接从柱面边界开始,但这未必会造成困难,除非你在你的机器上安装了 OS/2 操作系统。
当执行了对分区表的更新后退出时,程序会运行一次 sync() 和 BLKRRPART ioct1() (从磁盘上重读分区表信息)。以前,在使用完 fdisk 后需要重启系统。我认为现在不需要这样了 -- 太快的重起可能导致未写入磁盘的数据丢失。注意,内核和磁盘硬件都可能缓存数据。
DOS6.x WARNING
DOS6.x 的 FORMAT 命令会在分区的第一扇区的数据区查找一些信息,并认为这些信息比分区表中的信息更可靠。 DOS 的 FORMAT 命令认为 DOS 的 FDISK 命令会在分区变化时自动清除分区数据区的前 512 字节区域。 DOS 的 FORMAT 将查看这些额外的信息,甚至在给出了 /U 这个参数后也是如此。我们认为这是 DOS FORMAT 和 DOS FDISK 的臭虫。
如果你使用 cfdisk 或 fdisk 更改了 DOS 分区表的条目,你必须同时使用 dd 命令将该分区的前512个字节清零,之后,你才能使用 DOS 的 FORMAT 命令对这个分区进行格式化。例如:如果你使用 cfdisk 去创建一个 DOS 分区表项目,即分区 /dev/hda1,然后(在退出 fdisk 或 cfdisk 后重启 Linux 使分区表合法化)你就有必要使用如下命令 “dd if=/dev/ero of=/dev/hda1 bs=512 count=1” 来将分区的前 512 个字节清零。
当你使用 dd 命令时请 务必万分小心 , 由于任何小的打印错误都将造成磁盘数据的失效。
最好你还是使用由操作系统指定的分区工具软件。例如,当你创建 DOS 分区时应使用 DOS FDISK,而创建 Linux 分区时则使用 Linux 的 fdisk 或 cfdisk。
选项
- -v
- 打印 fdisk 的版本信息并退出.
- -l
- 列出指定设备的分区表信息并退出。如果没有给出设备,那么使用那些在 /proc/partitions (如果存在)提到的.
- -u
- 以扇区数而不是以柱面数的形式显示分区表中各分区的信息. -s 分区 将分区的 大小 (单位为块)信息输出到标准输出
臭虫
在 Linux 中有很多版本的 *fdisk 类程序。每一个都有自己的强项和缺点。分别试着使用 cfdisk, fdisk, sfdisk. (特别是, cfdisk 是一个漂亮的程序,它只接受最严谨的分区表,而且它能生成高质量的分区表。如果可能,你最好使用这个程序。 fdisk 是一个有很多臭虫的分区工具软件,它所做的操作是模糊不清的,通常在碰巧的情况下它才会正常的运行。它唯一值得使用的地方是它对 BSD 的磁盘标签和非 DOS 的分区表有所支持,尽量少用这个程序。 sfdisk 是一个专为黑客提供的程序,它的用户界面很不友善,但它更精确,也比 fdisk 和 cfdisk 更有效。另外,它只能以非交互的方式运行。
IRIX/SGI 风格的磁盘标签不再被当前的内核所支持, IRIX/SGI 头目录同样也不是完全支持。
选项“dump partition table to file”不可用
fdisk - Linux分区表操作工具软件的更多相关文章
- linux安装常用软件和查询基本信息
linux安装常用软件和查询基本信息 1. 安装常用软件 [ ...
- Linux负载均衡软件LVS简介
Linux负载均衡软件LVS LVS集群的体系结构以及特点 1. LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起 ...
- linux测速软件speedtest-cli
linux测速软件: https://github.com/sivel/speedtest-cli 以下是我在gentoo上测的
- 第三章 用SDK编译出第一个在Linux下的软件界面
第三章 用SDK编译出第一个在Linux下的软件界面 先创建一个工程目录“mkdir project1”,进入目录,创建main.cpp文件,编写代码如下: 代码内容暂时可以先不理解,先让程序跑起来再 ...
- Linux负载均衡软件LVS之二(安装篇)[转]
Linux负载均衡软件LVS之二(安装篇) 2011-04-26 16:01:47 标签:lvs安装配置 linux lvs 休闲 linux高可用 原创作品,允许转载,转载时请务必以超链接形式标明文 ...
- Windows上模拟Linux环境的软件Cygwin
Windows上模拟Linux环境的软件Cygwin 2010-10-11 15:19 我要评论(0) 字号:T|T Cygwin是一个用于在Windows上 模拟Linux环境的软件.它可 ...
- 总结Linux下的软件安装
安装软件的最佳实践 虽然我们知道Linux下安装软件有三种方式,分别是源代码安装,rpm包安装和yum安装,但是从可控性和结合自己目前的水平来说,优先选择以下两种方式安装程序. 1,使用rpm包安装 ...
- Linux下安装软件命令详解
---------------------------------------------------------------- 或许你对于linux还不够了解,但是一旦你步入公司后,你就会发现lin ...
- linux下安装软件的常用方法
在使用Linux系统的过程中,软件包的安装是避免不了的,在Linux下,软件安装程序的种类很多,安装方法也各式各样,(舒适性自然比不上windows :-))不过我们常见的软件包有两种: 1)含有软件 ...
随机推荐
- Nginx + Tomcat7 + redis session一致性问题
Nginx 作负载均衡时,由于是每次都需要把请求分发到不同的机器,同一个用户在一台机器上创建了 session,下一次的请求很有可能会转发到另外一台机器,会造成 session 丢失.我们可以使用 R ...
- android 拖拽图片&拖动浮动按钮到处跑
来自老外: 拖拽图片效果 方法一: 布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLa ...
- NodeJS什么都能做,为什么还要JAVA?
这张图看起来简单而且很好理解,但没尝试过,会有很多疑问. SPA模式中,后端已供了所需的数据接口,view前端已经可以控制,为什么要多加NodeJS这一层? 多加一层,性能怎么样? 多加一层,前端的工 ...
- Bigdecimal 比较equals与compareTo
原文链接:https://blog.csdn.net/jixinhuluwa/article/details/72626598 1.b.equals(BigDecimal.ZERO); 该方法存在的问 ...
- 避免picture图片无法删除,提示正在被其他进程使用
pictureBox1.Image = Image.FromStream(ByteToStream(SetImageToByteArray(cutImgPath))); #region 将文件转换成流 ...
- FoundToday 隐私政策
FoundToday 隐私政策 本应用尊重并保护所有使用服务用户的个人隐私权.为了给您提供更准确.更有个性化的服务,本应用会按照本隐私权政策的规定使用和披露您的个人信息.但本应用将以高度的勤勉.审慎义 ...
- linux下apache无法启动之(httpd not running, trying to st)
这突然接手的服务器,本来是没什么事的,可是因为机房的问题,需要将服务器迁回来,结果可想而知,关机重启了,其中有一台估计诚心给我过不去,待配置好ip并重启了服务后,发现apache无法正常启动了! 先还 ...
- Scala_Load csv data to hive via spark2.1_via pass parameters_HiveAllType
prepare CSV data NT,col_SMALLINT,col_BIGINT,col_INT,col_FLOAT,col_DOUBLE,col_DECIMAL,col_TIMESTAMP,c ...
- 如何自动更新SVN项目
在桌面新建“SVN Update.bat”文件,把下面的命令复制到该文件中,保存并退出,然后使用windows的“任务计划”功能,就可以实现定时自动更新SVN目录. 按此批处理文件的方法执行,一次可自 ...
- eclipse自动添加版权信息
Preference->Java->Code Style->Code Template->comments->Files->Edit 勾选上Automaticall ...