fdisk分区命令详解与fdisk非交互式分区

1.说明:fdisk如何来学习

fdisk,就是在linux中用来分区的一个命令了,至于详细的参数,可以man一下,这里给出实际应用过程中最常用的用法,因为这样比起单纯讲命令的语法功能更能掌握一个命令的实际用法。

下面的过程是在我自己的实验环境中搭建,先把简要的过程看一下:

(1)添加一块1GB的磁盘

(2)fdisk详细分区过程

(3)通知Linux内核分区信息的更改

(4)格式化分区

(5)挂载分区

OK!我相信这样一个过程下来,你是真正可以做到添加一块硬盘,并自己做分区格式化以及使用,这样的话,意义就真的比单纯讲fdisk的语法参数要好得多了!



2.实战演示:从添加硬盘到真正可以使用硬盘

(1)添加一块1GB的磁盘

我是在虚拟机环境下直接添加的,方法很简单,这里就不多说了,下面给出在linux下查看该硬盘的信息:

[[email protected] ~]# fdisk -l /dev/sdb
 
Disk /dev/sdb: 1073 MB, 1073741824bytes
255 heads, 63 sectors/track, 130cylinders
Units = cylinders of 16065 * 512 =8225280 bytes
Sector size (logical/physical): 512bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes/ 512 bytes
Disk identifier: 0x00000000


(2)fdisk详细分区过程

下面直接给出详细过程,重要的一些说明在该过程中已经给出,注意看了:

[[email protected] ~]# fdisk /dev/sdb ===>直接接磁盘名就可以分区
Device contains neither a valid DOSpartition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with diskidentifier 0x7f3aa9cb.
Changes will remain in memory only,until you decide to write them.
After that, of course, the previouscontent won‘t be recoverable.
 
Warning: invalid flag 0x0000 ofpartition table 4 will be corrected by w(rite)
 
WARNING: DOS-compatible mode isdeprecated. It‘s strongly recommended to
         switch off the mode (command ‘c‘) andchange display units to
         sectors (command ‘u‘).
 
Command (m for help): m
Command action
  a   toggle a bootable flag
  b   edit bsd disklabel
  c   toggle the dos compatibilityflag
  d   delete a partition           ===>删除一个分区
  l   list known partition types   ===>查看分区类型对应编号列表
  m   print this menu              ===>打印此帮助菜单
  n   add a new partition          ===>新建一个分区
  o   create a new empty DOSpartition table
  p   print the partition table    ===>打印分区表
  q   quit without saving changes  ===>退出但不保存更改
  s   create a new empty Sundisklabel
  t   change a partition‘s system id   ===>更改分区类型(做LVM时需要)
  u   change display/entry units
  v   verify the partition table
  w   write table to disk and exit     ===>将操作写入分区表并退出程序
  x   extra functionality (expertsonly)
 
Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
p   ===>新建一个主分区
Partition number (1-4): 1   ===>指定主分区的分区号码
First cylinder (1-130, default 1):  ===>指定分区开始的柱面号
Usingdefault value 1
Last cylinder, +cylinders or+size{K,M,G} (1-130, default 130): +100M
===>指定分区结束的柱面号,或者指定分区大小,让fdisk自动判断结束柱面号
Command (m for help): p
 
Disk /dev/sdb: 1073 MB, 1073741824bytes
255 heads, 63 sectors/track, 130cylinders
Units = cylinders of 16065 * 512 =8225280 bytes
Sector size (logical/physical): 512bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes/ 512 bytes
Disk identifier: 0x7f3aa9cb
 
  Device Boot      Start         End      Blocks  Id  System
/dev/sdb1               1          14      112423+ 83  Linux
 
Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
e   ===>新建一个扩展分区
Partition number (1-4): 1
Partition 1 is already defined.  Delete it before re-adding it.
===>由于前面已经使用了分区号码1,所以这里会提示错误
Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (15-130, default 15): 
Usingdefault value 15
Last cylinder, +cylinders or+size{K,M,G} (15-130, default 130): 
Usingdefault value 130
===>分区的开始柱面号和结束柱面号都使用默认值,即把剩余磁盘空间分配给该分区
Command (m for help): p
 
Disk /dev/sdb: 1073 MB, 1073741824bytes
255 heads, 63 sectors/track, 130cylinders
Units = cylinders of 16065 * 512 =8225280 bytes
Sector size (logical/physical): 512bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes/ 512 bytes
Disk identifier: 0x7f3aa9cb
 
  Device Boot      Start         End      Blocks  Id  System
/dev/sdb1               1          14      112423+ 83  Linux
/dev/sdb2              15         130      931770   5  Extended
 
 
Command (m for help): n
Command action
  l   logical (5 or over)  ===>由于扩展分区只能有一个,上面新建扩展分区后
  p   primary partition (1-4)  这里就显示逻辑分区了,也可以看到fdisk命令,
p                              要想新建逻辑分区,需要先新建扩展分区
Partition number (1-4): 3
No free sectors available
===>这里还想再新建一个主分区,但是提示已经没有磁盘空间剩余
Command (m for help): n
Command action
  l   logical (5 or over)
  p   primary partition (1-4)
l   ===>新建一个逻辑分区
First cylinder (15-130, default 15): 
Usingdefault value 15
Last cylinder, +cylinders or+size{K,M,G} (15-130, default 130): +400M
 
Command (m for help): p
 
Disk /dev/sdb: 1073 MB, 1073741824bytes
255 heads, 63 sectors/track, 130cylinders
Units = cylinders of 16065 * 512 =8225280 bytes
Sector size (logical/physical): 512bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes/ 512 bytes
Disk identifier: 0x7f3aa9cb
 
  Device Boot      Start         End     Blocks   Id System
/dev/sdb1               1          14      112423+ 83  Linux
/dev/sdb2              15         130      931770   5  Extended
/dev/sdb5              15          66      417658+ 83  Linux
 
Command (m for help): n
Command action
  l   logical (5 or over)
  p   primary partition (1-4)
l
First cylinder (67-130, default 67): 
Usingdefault value 67
Last cylinder, +cylinders or+size{K,M,G} (67-130, default 130): 
Usingdefault value 130
 
Command (m for help): p
 
Disk /dev/sdb: 1073 MB, 1073741824bytes
255 heads, 63 sectors/track, 130cylinders
Units = cylinders of 16065 * 512 =8225280 bytes
Sector size (logical/physical): 512bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes/ 512 bytes
Disk identifier: 0x7f3aa9cb
 
  Device Boot      Start         End      Blocks  Id  System
/dev/sdb1               1          14      112423+ 83  Linux
/dev/sdb2              15         130      931770   5  Extended
/dev/sdb5              15          66      417658+ 83  Linux
/dev/sdb6              67        130      514048+  83 Linux
 
Command (m for help): w ===>保存更改
The partition table has been altered!
 
Calling ioctl() to re-read partitiontable.
Syncing disks.

OK,可以看到,fdisk的分区方法是非常简单的,但是前提就是需要你得对硬盘的知识有一定的了解,比如:硬盘的内部结构、磁头、柱面、扇区等,这些知识都需要非常熟悉才好,不然的话,使用fdisk来分区的话也只是--“雾里看花,水中望月”,掌握原理才是最重要的,而使用命令工具只是为了实现我们的需求,同时也可以加深我们对原理的理解。



(3)通知Linux内核分区信息的更改

[[email protected] ~]# partprobe /dev/sdb

分区完成后,需要此步骤,否则去使用这些分区时会出现错误信息。当然,如果不这样做的话,也可以采取重新启动系统的方法。



(4)格式化分区

格式化分区是为了创建文件系统,分配Inode和Block

[[email protected] ~]# mkfs.ext4 /dev/sdb
sdb  sdb1  sdb2  sdb5 sdb6  
[[email protected] ~]# mkfs.ext4 /dev/sdb1
……
This filesystem will be automaticallychecked every 31 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

最后面提示说系统会定时检查文件系统,这里不想系统检查,则可以使用下面的命令:

[[email protected] ~]# tune2fs -c -1/dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to -1


(5)挂载分区

[[email protected] ~]# mount /dev/sdb1 /mnt
[[email protected] ~]# df -h
Filesystem      Size Used Avail Use% Mounted on
/dev/sda3       9.2G 1.8G  7.0G  21% /
tmpfs           937M     0 937M   0% /dev/shm
/dev/sda1       194M  34M  151M  19% /boot
/dev/sdb1       107M 5.6M   96M   6% /mnt

这里的挂载是临时挂载的,如果需要永久挂载(即开机挂载),则需要修改/etc/fstab文件,这里就不提及了。

OK,通过上面的实战步骤,实际上已经可以掌握fdisk的用法了,这样的话以后需要添加硬盘、分区格式化的话,就不会不知道怎么做了吧?



3.拓展:fdisk如何非交互分区???

从上面的fdisk分区过程可以看到,fidisk使用的是交互式的过程,如果学过parted命令,应该知道parted是可以进行非交互式的分区的,那么这里的问题是,fdisk可以非交互式分区吗?

答案是肯定可以的,请参考下面:

(1)将你要在fdisk命令行输入的命令实现写入一个文本文件,比如叫做fdisk.txt

(2)然后fdisk.txt的内容类似于这样:

n
p
1
0
100M
w

实际就是我们在交互式时的分区过程(当然这里与我上面的分区并非一样)

(3)然后用类似如下命令实现自动分区:

fdisk /dev/hda < fdiskcmd.txt

OK!内容就这么多了,看是没有用,重在实践,希望可以帮到大家!

时间: 2024-08-23 06:42:42

fdisk分区命令详解与fdisk非交互式分区的相关文章

fdisk 命令详解

一.fdisk 常用命令 fdisk  -l  :查看当前磁盘的分区情况 fdisk  /dev/xvdb:为该磁盘进行分区 在输入命令:fdisk  /dev/xvdb 之后,系统会进入到磁盘的分区界面,会显示"command   (m  for  help)",这里有些选项非常重要: m:列出所有命令 p:打印出当前分区的情况 n:新建分区 d:删除分区 二.分区过程详解 在进入到分区界面之后,我们就正式开始对磁盘的分区了,下面来一步一步操作 Command (m for help

Linux上命令的使用格式和基础命令详解

一.Linux上命令的使用格式 命令行提示符详解: 用户通过终端的命令行接口来控制操作系统,登陆后如下: [[email protected] ~]# root: 当前登录的用户 @:分隔符 localhost: 当前主机的主机名,非完整格式:此处的完整格式为:localhost.localdomain [[email protected] ~]# hostname localhost.localdomain ~:用户当前所在的目录(current directory),也称为工作目录(work

Linux系统进程管理命令详解

Linux管理进程的最好方法就是使用命令行下的系统命令.Linux下面的进程涉及的命令有at, bg, fg, kill, crontab, jobs, ps, pstree, top, nice, renice, sleep, nohup. 1.at命令:定时运行命令 作用:at命令在指定时刻执行指定的命令序列. 格式: at [-V] [-q x] [-f file] [-m] time atq [-V] [-q x] atrm [-V] [-q x] job- batch [-V] [-f

docker run命令详解及示例(二)

docker run Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] Run a command in a new container 上接博文:docker run命令详解及示例(一) --link --link=[]        Add link to another container 用于连接两个容器. 启动容器1:web docker run --name web -d -p 22 -p 80 -itwebserver:v1

CentOS tree命令详解

inux下tree命令详解---linux以树状图逐级列出目录的内容命令 #############################################################################命令格式 tree <选项或者是参数> <分区或者是目录> #############################################################################(1) tree 最长使用的参数或者是选项 

vmstat命令详解——linux性能分析

版本信息: procps version 3.2.8 基本使用: vmstat [-a] [-n] [-t] [-S unit] [delay [ count]] [-a]:显示活跃和非活跃内存 [-n]:只在开始时显示一次字段名,针对多次收集信息的情况输出人性化一点 [-t]:在每条信息的末尾,显示收集信息的时间 [-S unit]:使用指定单位显示.参数有 k .K .m .M ,分别代表1000.1024.1000000.1048576字节(byte).默认单位为K(1024 bytes)

Find命令详解

find命令详解 格式 find pathname -options [ -print -exec -ok ... ] 功能 在磁盘中查找文件,并作相应处理 参数 pathname         所查找的目录,可以是相对/绝对路径 options -print 将结果输出到标准输出 -exec 'command' {} \; 对结果执行该参数所给的shell命令 -ok 与-exec作用相同,不过需要用户确认是否执行命令 -name 按照文件名查找 -perm [+-]mode 按照文件权限查

vi和vim区别及命令详解

vi和vim都是Linux中的编辑器,不同的是vim比较高级,可以视为vi的升级版本.vi使用于文本编辑,但是vim更适用于coding.     现将vim的命令行收集于下: vi有3个模式:插入模式.命令模式.低行模式. 插入模式:在此模式下可以输入字符,按ESC将回到命令模式.     命令模式:可以移动光标.删除字符等.     低行模式:可以保存文件.退出vi.设置vi.查找等功能(低行模式也可以看作是命令模式里的). 一.打开文件.保存.关闭文件(vi命令模式下使用) vi file

vmstat 命令详解 转载

vmstat 命令详解   procs:r-->在运行队列中等待的进程数b-->在等待io的进程数w-->可以进入运行队列但被替换的进程 memoyswap-->现时可用的交换内存(k表示)free-->空闲的内存(k表示) pagesre-->回收的页面mf-->非严重错误的页面pi-->进入页面数(k表示)po-->出页面数(k表示)fr-->空余的页面数(k表示)de-->提前读入的页面中的未命中数sr-->通过时钟算法扫描的页