Linux fdisk分区命令使用详解

发布时间:2019-12-04编辑:脚本学堂
本文详细介绍了linux下的分区命令fdisk的用法,有需要的朋友参考下。

fdisk命令是各种 linux 发行版本中最常用的分区工具,是被定义为 Expert 级别的分区工具,它让初学者有点望而却步。

1,Fdisk 参数说明
运行Fdisk时,首先映入眼帘的是欢迎界面,用户通过在这个界面中输入命令参数来操作Fdisk。用户通过提示键入 “m”,可以显示 Fdisk 命令各个参数的说明。 读者可以看到 Fdisk 有很多参数,可是经常使用的就是几个,如果读者熟练掌握这几个参数就可以流畅地运用 Fdisk,对 Linux 的硬盘进行分区。我们先简单介绍各个参数的意义,然后详细说明几个重点参数。
用户在 Linux 中进行分区时,最常用的参数分别是 d、l、m、n、p、q、t、w 等。

2,用 Fdisk 进行分区
在 Linux 分区过程,一般是先通过 p 参数来显示出硬盘分区表信息,然后根据信息确定将来的分区。如果想完全改变硬盘的分区格式,就可以通过 d 参数一个个删除存在的硬盘分区。
例如 d1,d2。 删除完毕,就可以通过 n 参数来增加新的分区。当按下 “n” 后,我们就可以看到新增的分区。这里要选择新建的分区类型,是主分区还是扩展分区;然后选择 p 或是 e。它们的区别在上文中已经说明。然后就是设置分区的大小。

注意:如果硬盘上有扩展分区,就只能增加逻辑分区,不能增加扩展分区了,在增加分区时,其类型都是默认的 Linux Native,如果需要把其中的某些分区改变为其它类型,例如 Linux Swap 或 FAT32 等,可以通过命令 t 来改变, 当按下 “t” 改变分区类型时,系统会提示要改变哪个分区,并且改变为什么类型(如果想知道系统所支持的分区类型,键入 l)。

Linux 所支持的分区类型号码和其对应的分区类型,可以参考表 2(这些信息可以用 l 命令得到)。

改变完了分区类型,就可以按下 “w”,保存并且退出。如果不想保存,那么可以选择 “q” 直接退出。
fdisk 是一款强大的磁盘操作工具,来自util-linux软件包,我们在这里只说他如何查看磁盘分区表及分区结构;
参数-l ,通过-l 参数,能获得机器中所有磁盘的个数,也能列出所有磁盘分区情况;
 

复制代码 代码示例:

[root@localhost beinan]# fdisk -l
Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1         765     6144831    7  HPFS/NTFS
/dev/hda2             766        2805    16386300    c  W95 FAT32 (LBA)
/dev/hda3            2806        7751    39728745    5  Extended
/dev/hda5            2806        3825     8193118+  83  Linux
/dev/hda6            3826        5100    10241406   83  Linux
/dev/hda7            5101        5198      787153+  82  Linux swap / Solaris
/dev/hda8            5199        6657    11719386   83  Linux
/dev/hda9            6658        7751     8787523+  83  Linux
 

在上面Blocks中,表示的是分区的大小,Blocks的单位是byte ,我们可以换算成M,比如第一个分区/dev/hda1的大小如果换算成M,应该是6144831/1024=6000M,也就是6G左右,其实没有这么 麻烦,粗略的看一下把小数点向前移动三位,就知道大约的体积有多大了;

    System 表示的文件系统,比如/dev/hda1 是NTFS格式的;/dev/hda2 表示是fat32格式的文件系统;.
在此例中,我们要特别注意的是/dev/hda3分区,这是扩展分区;他下面包含着逻辑分区,其实这个分区相当于一个容器;

从属于她的有 hda5,hda6,hda7,hda8,hda9 ;
注意到一点,怎么没有hda4呢?为什么hda4没有包含在扩展分区?一个磁盘最多有四个主分区; hda1-4算都是主分区;

hda4不可能包含在扩展分区里,另外扩展分区也算主分区;在本例中,没有hda4这个分区,当然可以把其中的一个分区设 置为主分区,只是当时分区时没有这么做;

再仔细统计一下,看看这个磁盘是不是还有空间?hda1+hda2+hda3=实际已经分区的体积,所以我们可以这样算 hda1+hda2+hda3=6144831+16386300+39728745 = 62259876 (b),换算成M单位,小数点向前移三位,所以目前已经划分好的分区大约占用体积是62259.876(M),其实最精确的计算 62259876/1024=60800.67(M);

而这个磁盘大小是80.0 GB (80026361856byte),其实实际大小也就是78150.744(M);通过我们一系列的计算,我们可以得出这个硬盘目前还有使用的空间;大约还有18G未分区的空间;

指定fdisk -l 来查看其中一个硬盘的分区情况;
 

复制代码 代码示例:

[root@localhost beinan]# fdisk -l /dev/sda

Disk /dev/sda: 60.0 GB, 60011642880 bytes
64 heads, 32 sectors/track, 57231 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       57231    58604528   83  Linux

通过上面情况可以知道,在/dev/sda 这个磁盘中,只有一个分区;使用量差不多是百分百了;
我们还可以来查看 /dev/hda的
[

复制代码 代码示例:
root@localhost beinan]# fdisk -l /dev/hda
 

自己试试看?

通过: cat /proc/partitions查看目前机器中的所有磁盘及分区情况
 
df命令
df 是来自coreutils 软件包,系统安装时,就自带的;

通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置;
举例:
 

复制代码 代码示例:
[root@localhost beinan]# df -lh
Filesystem            容量  已用 可用 已用% 挂载点
/dev/hda8              11G  6.0G  4.4G  58% /
/dev/shm              236M     0  236M   0% /dev/shm
/dev/sda1              56G   22G   35G  39% /mnt/sda1

从中可以看到,系统安装在/dev/hda8 ;还有一个56G的磁盘分区/dev/sda1挂载在 /mnt/sda1中;
其它的参数请参考 man df
 

swap    2G :一般这种格式的分区比内存大一倍. 
/  5G ext3格式. 
/boot   给100M 这是通常的做法,我一般不这样 
/home   20G ext3 格式 
  /var    20G :ext3 
 /usr    15G: ext3 
  /opt     20G: ext3 
 

这个文件系统;系统本身是没有的.我是为了以后做web服务器使用而设的.在后面的设置中我会一一介绍. 
/ftp      其余 :ext3 
这是为了ftp服务的.注: 一定要设swap格式. 
 
通过以上两个方面的学习,相信对于初学者来说,分区已经不再是 Linux 进阶中的绊脚石了

下面以centos分区为例进行介绍。 
CentOS分区规律大总结
 
经过长时间的使用CentOS,对CentOS分区有一定的总结。本人在这里所要说的,是个人在安装Centos时候对CentOS分区所得的心得。
在CentOS分区时有按自动分区的,这样子CentOS分区虽不会出现什么错误,但是对于个人自己的要求不同就会出现这样子或那样的问题。根据我的地盘我做主的原则,我们还是要对CentOS分区有一定的了解。
在这里我的硬盘是160G,内存是1G。我的分区原则是:
 

swap    2G :一般这种格式的分区比内存大一倍. 
/  5G ext3格式. 
         /boot   给100M 这是通常的做法,我一般不这样 
/home   20G ext3 格式 
           /var    20G :ext3 
         /usr    15G: ext3 
         /opt     20G: ext3 
 

这个文件系统;系统本身是没有的.我是为了以后做web服务器使用而设的.在后面的设置中我会一一介绍. 
    /ftp      其余 :ext3 
   这是为了ftp服务的.注: 一定要设swap格式. 
FreeBSD 服务器分区(73G硬盘)  这是一个根文件系统(root filesystem)。任何其它的文件系统都会挂在根目录下面。在往后并不会在这里存放太多的数据。除了安装后需要一些空间,剩下的空间是用来存放临时文件用的。系统推荐空间为:512M  SWAP  此分区为系统磁盘交换分区(swap space)。一般来说,交换空间的大小应该是您系统上内存(RAM)大小的2到3倍。不过听说内存如果是2G,交换区并不需要4G的空间 ,过了2G的交换区再大也没多大的意义。推荐使用3G,因为一般服务器内存都为1G,但还要考虑以后的升级 /var  /var 目录会存放不同长度的文件、日志以及其它管理用途的文件。大部分这些文件都是FreeBSD每天在运行时会读取或是写入的。 /tmp  系统的临时文件存放的地方 /usr  你所有的其它的文件通常都会存在/usr 目录以及其子目录下面。包括源码,和一些自己安装的程序文件(他们默认都是放在这个目录下的) /boot 存放系统启动时加载的信息。现在的FREEBSD6已经挂在/下了。不用另外分区了.
参考分区大小:
 

/ 2048m 
swap 3000m 
/var 8000m 
/tmp 2048m 
/usr 8000m 
/ftp 30000m 
/www 16914m
在 raid 1 上:
/boot 100M  
 
/tmp 4G  
swap 4G  
/usr 4G-6G  
/var 4-16G 看是否需要保存系统的log,需要可大点,但正常4G够了  
/ 10G  
/opt 剩余空间,安装应用 
/var/log  
 

可以单独做一个CentOS分区挂载点

/usr 这里将保存所有程序文件(类似于C:Program Files子目录)。

/home 这里有每一位用户的登录子目录(假定这个服务器主机将容纳他们)。这样做可以防止用户消耗掉硬盘上的全部空间,为其他关键组件(比如各种系统记录文件)留出余地。

/var 各种系统记录文件的最终保存位置。由于系统记录文件可能会受到来自本系统以外的用户(比如,访问某个互连网站点的人们)的影响,因此把它们单独保存到另外的CentOS分区上是十分重要的,这样就可以防止别人通过生成大量登录数据项填满整个硬盘而施行的“拒绝服务”(Denial of Service,D o S)攻击。

/tmp 这里将用来保存各种临时文件。因为这个子目录的设计目的就是要让任何一个用户都可以对它进行写操作(类似于Wi n d o w s中的C : T E M P子目录),所以我们必须保证不会因为某些冒失用户的滥用而让这个子目录扩张填满整个硬盘;我们采用为它单独开辟一个CentOS分区的方法来保证这一点。

 Swap 这并不是一个用户能够访问的文件系统,它是保存虚拟内存( virtual memory)。