第八章 磁盘的分割、格式化、检验与挂载

对于一个系统管理者( root )而言,磁盘的的管理是相当重要的一环,尤其近来硬盘已经渐渐的被当成是消耗品了 ..... 如果我们想要在系统里面新增一颗硬盘时,应该有哪些动作需要做的呢:

A 对磁盘进行分割,以创建可用的 partition ;
B 对该 partition 进行格式化( format ),以创建系统可用的 filesystem;
C 若想要仔细一点,则可对刚刚创建好的 filesystem 进行检验;
D 在 Linux 系统上,需要创建挂载点 ( 亦即是目录 ),并将他挂载上来;


当然啰,在上述的过程当中,还有很多需要考虑的,例如磁盘分区槽 (partition) 需要定多大? 是否需要加入 journal 的功能?inode 与 block 的数量应该如何规划等等的问题。 但是这些问题的决定, 都需要与你的主机用途来加以考虑的~所以,在这个小节里面,鸟哥仅会介绍几个动作而已, 更详细的配置值,则需要以你未来的经验来参考啰!

磁盘分区: fdisk

[root@www ~]# fdisk [-l] 装置名称
选项与参数:
-l  :输出后面接的装置所有的 partition 内容。若仅有 fdisk -l 时,
      则系统将会把整个系统内能够搜寻到的装置的 partition 均列出来。

范例:找出你系统中的根目录所在磁盘,并查阅该硬盘内的相关信息
[root@www ~]# df /            <==注意:重点在找出磁盘文件名而已
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hdc2              9920624   3823168   5585388  41% /

[root@www ~]# fdisk /dev/hdc  <==仔细看,不要加上数字喔!
The number of cylinders for this disk is set to 5005.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help):     <==等待你的输入!


由于每个人的环境都不一样,因此每部主机的磁盘数量也不相同。所以你可以先使用 df 这个命令找出可用磁盘文件名, 然后再用 fdisk 来查阅。在你进入 fdisk 这支程序的工作画面后,如果您的硬盘太大的话(通常指磁柱数量多于 1024 以上),就会出现如上信息。这个信息仅是在告知你,因为某些旧版的软件与操作系统并无法支持大于 1024 磁柱 (cylinter) 后的扇区使用,不过我们新版的 Linux 是没问题啦!底下继续来看看 fdisk 内如何操作相关动作吧!


Command (m for help): m   <== 输入 m 后,就会看到底下这些命令介绍
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition            <==删除一个partition
   l   list known partition types
   m   print this menu
   n   add a new partition           <==新增一个partition
   o   create a new empty DOS partition table
   p   print the partition table     <==在屏幕上显示分割表
   q   quit without saving changes   <==不储存离开fdisk程序
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit  <==将刚刚的动作写入分割表
   x   extra functionality (experts only)


老实说,使用 fdisk 这支程序是完全不需要背命令的!如同上面的表格中,你只要按下 m 就能够看到所有的动作! 比较重要的动作在上面已经用底线画出来了,你可以参考看看。其中比较不一样的是『q 与 w』这两个玩意儿! 不管你进行了什么动作, 只要离开 fdisk 时按下『q』,那么所有的动作『都不会生效!』相反的, 按下『w』就是动作生效的意思。所以,你可以随便玩 fdisk ,只要离开时按下的是『q』即可。 ^_^! 好了,先来看看分割表信息吧!

Command (m for help): p  <== 这里可以输出目前磁盘的状态

Disk /dev/hdc: 41.1 GB, 41174138880 bytes        <==这个磁盘的文件名与容量
255 heads, 63 sectors/track, 5005 cylinders      <==磁头、扇区与磁柱大小
Units = cylinders of 16065 * 512 = 8225280 bytes <==每个磁柱的大小

   Device Boot      Start         End      Blocks   Id  System
/dev/hdc1   *           1          13      104391   83  Linux
/dev/hdc2              14        1288    10241437+  83  Linux
/dev/hdc3            1289        1925     5116702+  83  Linux
/dev/hdc4            1926        5005    24740100    5  Extended
/dev/hdc5            1926        2052     1020096   82  Linux swap / Solaris
# 装置文件名 启动区否 开始磁柱    结束磁柱  1K大小容量 磁盘分区槽内的系统

Command (m for help): q
# 想要不储存离开吗?按下 q 就对了!不要随便按 w 啊!


使用『 p 』可以列出目前这颗磁盘的分割表信息,这个信息的上半部在显示整体磁盘的状态。 以鸟哥这颗磁盘为例,这个磁盘共有 41.1GB 左右的容量,共有 5005 个磁柱,每个磁柱透过 255 个磁头在管理读写, 每个磁头管理 63 个扇区,而每个扇区的大小均为 512bytes ,因此每个磁柱为『 255*63*512 = 16065*512 = 8225280bytes 』。

下半部的分割表信息主要在列出每个分割槽的个别信息项目。每个项目的意义为:

A Device:装置文件名,依据不同的磁盘接口/分割槽位置而变。
B Boot:是否为启动引导块?通常 Windows 系统的 C 需要这块!
C Start, End:这个分割槽在哪个磁柱号码之间,可以决定此分割槽的大小;
D Blocks:就是以 1K 为单位的容量。如上所示,/dev/hdc1 大小为104391K = 102MB
E ID, System:代表这个分割槽内的文件系统应该是啥!不过这个项目只是一个提示而已, 不见得真的代表此分割槽内的文件系统喔!


从上表我们可以发现几件事情:

A 整部磁盘还可以进行额外的分割,因为最大磁柱为 5005 ,但只使用到 2052 号而已;
C /dev/hdc5 是由 /dev/hdc4 分割出来的,因为 /dev/hdc4 为 Extended,且 /dev/hdc5 磁柱号码在 /dev/hdc4 之内;


fdisk 还可以直接秀出系统内的所有 partition 喔!举例来说,鸟哥刚刚插入一个 U盘 磁盘到这部 Linux 系统中, 那该如何观察 (1)这个磁盘的代号与 (2)这个磁盘的分割槽呢?

范例:查阅目前系统内的所有 partition 有哪些?
[root@www ~]# fdisk -l
Disk /dev/hdc: 41.1 GB, 41174138880 bytes
255 heads, 63 sectors/track, 5005 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdc1   *           1          13      104391   83  Linux
/dev/hdc2              14        1288    10241437+  83  Linux
/dev/hdc3            1289        1925     5116702+  83  Linux
/dev/hdc4            1926        5005    24740100    5  Extended
/dev/hdc5            1926        2052     1020096   82  Linux swap / Solaris

Disk /dev/sda: 8313 MB, 8313110528 bytes
59 heads, 58 sectors/track, 4744 cylinders
Units = cylinders of 3422 * 512 = 1752064 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        4745     8118260    b  W95 FAT32


由上表的信息我们可以看到我有两颗磁盘,磁盘文件名为『/dev/hdc 与 /dev/sda』,/dev/hdc 已经在上面谈过了, 至于 /dev/sda 则有 8GB 左右的容量,且全部的磁柱都已经分割给 /dev/sda1 ,该文件系统应该为 Windows 的 FAT 文件系统。这样很容易查阅到分割方面的信息吧!

这个 fdisk 只有 root 才能运行,此外,请注意, 使用的『装置文件名』请不要加上数字,因为 partition 是针对『整个硬盘装置』而不是某个 partition 呢!所以运行『 fdisk /dev/hdc1 』 就会发生错误啦!要使用 fdisk /dev/hdc 才对!那么我们知道可以利用 fdisk 来查阅硬盘的 partition 信息外,底下再来说一说进入 fdisk 之后的几个常做的工作!

再次强调,你可以使用 fdisk 在您的硬盘上面胡搞瞎搞的进行实际操作,都不打紧, 但是请『千万记住,不要按下 w 即可!』离开的时候按下 q 就万事无妨啰!

删除磁盘分区槽

如果你是按照鸟哥建议的方式去安装你的 CentOS ,那么你的磁盘应该会预留一块容量来做练习的。 实际练习新增硬盘之前,我们先来玩一玩恐怖的删除好了~如果想要测试一下如何将你的 /dev/hdc 全部的分割槽删除,应该怎么做?

1 fdisk /dev/hdc :先进入 fdisk 画面;
2 p :先看一下分割槽的信息,假设要杀掉 /dev/hdc1;
3 d :这个时候会要你选择一个 partition ,就选 1 啰!
4 w (or) q :按 w 可储存到磁盘数据表中,并离开 fdisk ;当然啰, 如果你反悔了,呵呵,直接按下 q 就可以取消刚刚的删除动作了!

# 练习一: 先进入 fdisk 的画面当中去!
[root@www ~]# fdisk /dev/hdc

# 练习二: 先看看整个分割表的情况是如何
Command (m for help): p

Disk /dev/hdc: 41.1 GB, 41174138880 bytes
255 heads, 63 sectors/track, 5005 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值