本文目录:

  1. 1.磁盘分区 -- fdisk 
  2.     显示磁盘分区 
  3.     删除磁盘分区 
  4.     新增磁盘分区 
  5. 2.磁盘格式化 --mkfs,mke2fs 
  6.     mkfs 
  7.     mke2fs 
  8. 3.磁盘检验 --fsck, badblocks 
  9.     fsck 
  10.     badblocks 
  11. 4.磁盘的挂载与卸除 
  12.     磁盘的挂载 
  13.         挂载Ext2/Ext3文件系统 
  14.         挂载 CD 或 DVD 光盘 
  15.         挂载U盘 
  16.         重新挂载根目录(/) 
  17.         挂载某个目录到另外一个目录(与硬链接类似) 
  18.         使用 Label name 进行挂载 
  19.     装置文件卸除 
  20.         umount (将装置文件卸除) 
  21. 5.磁盘参数修订 
  22.     mknod 
  23.     e2label 
  24.     tune2fs 
  25.     hdparm 
  1. 如果我们想要在系统里面新增一颗硬盘时,应该有哪些动作需要做的呢: 
  2. 1、对磁盘进行分割,以创建可用的 partition ; 
  3. 2、对该 partition 进行格式化( format ),以创建系统可用的 filesystem; 
  4. 3、若想要仔细一点,则可对刚刚创建好的 filesystem 进行检验; 
  5. 4、在 Linux 系统上,需要创建挂载点 ( 亦即是目录 ),并将他挂载上来; 

 磁盘分区 -- fdisk


  1、显示磁盘分区

  1. 操作环境的说明 
  2. 以 root 的身份进行硬盘的 partition 时,最好是在单人维护模式底下比较安全一些, 此外,在进行 fdisk 的时候,如果该硬盘某个 partition 还在使用当中, 那么很有可能系统核心会无法重载硬盘的 partition table ,解决的方法就是将该使用中的 partition 给他卸除,然后再重新进入 fdisk 一遍,重新写入 partition table ,那么就可以成功啰! 

  2、删除磁盘分区

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

 3、新增磁盘分区

例题:
请依照你的系统情况,创建一个大约 1GB 左右的分割槽,并显示该分割槽的相关信息:
答:

鸟哥的磁盘为 /dev/hdc ,尚有剩余磁柱号码,因此可以这样做:

在这个实作题中,请务必要按下『 w 』这个动作!因为我们实际上确实要创建这个分割槽嘛! 但请仔细看一下最后的警告信息,因为我们的磁盘无法卸除(因为含有根目录),所以核心无法重新取得分割表信息, 因此此时系统会要求我们重新启动(reboot)以升级核心的分割表信息才行

如上的练习中,最终写入分割表后竟然会让核心无法捉到分割表信息!此时你可以直接使用 reboot 来处理, 也可以使用 GNU 推出的工具程序来处置,那就是 partprobe 这个命令。这个命令的运行很简单, 他仅是告知核心必须要读取新的分割表而已,因此并不会在屏幕上出现任何信息才是! 这样一来,我们就不需要 reboot 啰!

 

  1. 注意事项: 
  2.  
  3. 另外在实作过程中请特别注意,因为 SATA 硬盘最多能够支持到 15 号的分割槽, IDE 则可以支持到 63 号。 但目前大家常见的系统都是 SATA 磁盘,因此在练习的时候千万不要让你的分割槽超过 15 号! 否则即使你还有剩余的磁柱容量,但还是会无法继续进行分割的喔! 
  4.  
  5. 另外需要特别留意的是,fdisk 没有办法处理大于 2TB 以上的磁盘分区槽! 这个问题比较严重!因为虽然 Ext3 文件系统已经支持达到 16TB 以上的磁盘,但是分割命令却无法支持。 时至今日(2009)所有的硬件价格大跌,硬盘也已经出到单颗 1TB 之谱,若加上磁盘阵列 (RAID) , 高于 2TB 的磁盘系统应该会很常见!此时你就得使用 parted 这个命令了!我们会在本章最后谈一谈这个命令的用法。 

  磁盘格式化 --mkfs,mke2fs


  1、mkfs

 2、mke2fs

  磁盘检验 --fsck, badblocks


  1、fsck

 2、badblocks

 磁盘的挂载与卸除


  磁盘的挂载

  1. 不过要进行挂载前,你最好先确定几件事: 
  2. 1、单一文件系统不应该被重复挂载在不同的挂载点(目录)中; 
  3. 2、单一目录不应该重复挂载多个文件系统; 
  4. 3、要作为挂载点的目录,理论上应该都是空目录才是。 
  5.  
  6. 尤其是上述的后两点!如果你要用来挂载的目录里面并不是空的,那么挂载了文件系统之后,原目录下的东西就会暂时的消失。 举个例子来说,假设你的 /home 原本与根目录 (/) 在同一个文件系统中,底下原本就有 /home/test 与 /home/vbird 两个目录。然后你想要加入新的硬盘,并且直接挂载 /home 底下,那么当你挂载上新的分割槽时,则 /home 目录显示的是新分割槽内的数据,至于原先的 test 与 vbird 这两个目录就会暂时的被隐藏掉了!注意喔!并不是被覆盖掉, 而是暂时的隐藏了起来,等到新分割槽被卸除之后,则 /home 原本的内容就会再次的跑出来啦! 

 1、挂载Ext2/Ext3文件系统

 

 2、挂载 CD 或 DVD 光盘

 3、挂载U盘

注意,你的这个闪盘不能够是 NTFS 的文件系统喔!

  1. 如果带有中文文件名的数据,那么可以在挂载时指定一下挂载文件系统所使用的语系数据。 在 man mount 找到 vfat 文件格式当中可以使用 iocharset 来指定语系,而中文语系是 cp950 , 所以也就有了上述的挂载命令项目啰。 

 4、重新挂载根目录(/)

 5、挂载某个目录到另外一个目录(与硬链接类似)

 6、使用 Label name 进行挂载

 装置文件卸除

 1、umount (将装置文件卸除)

 磁盘参数修订


 1、mknod

  1. 基本上,Linux 核心 2.6 版以后,硬件文件名已经都可以被系统自动的实时产生了,我们根本不需要手动创建装置文件。 不过某些情况底下我们可能还是得要手动处理装置文件的,例如在某些服务被关到特定目录下时(chroot), 就需要这样做了。此时这个 mknod 就得要知道如何操作才行! 

  2、e2label

  1.  举例来说,刚刚我们聊到的磁盘的挂载时,不就有用到 Label name 来进行挂载吗? 目前 CentOS 的配置文件,也就是那个 /etc/fstab 文件的配置都默认使用 Label name 呢! 那这样做有什么好处与缺点呢? 
  2.  
  3. 优点:不论磁盘文件名怎么变,不论你将硬盘插在哪个 IDE / SATA 接口,由于系统是透过 Label ,所以,磁盘插在哪个接口将不会有影响; 
  4.  
  5. 缺点:如果插了两颗硬盘,刚好两颗硬盘的 Label 有重复的,那就惨了~ 因为系统可能会无法判断哪个磁盘分区槽才是正确的! 
  6.  
  7. 鸟哥一直是个比较『硬派』作风,所以我还是比较喜欢直接利用磁盘文件名来挂载啦! 不过,如果没有特殊需求的话,那么利用 Label 来挂载也成! 但是你就不可以随意修改 Label 的名称了! 

  3、tune2fs

 4、hdparm

  1. 如果你的硬盘是 IDE 接口的,那么这个命令可以帮助你配置一些进阶参数!如果你是使用 SATA 接口的, 那么这个命令就没有多大用途了!另外,目前的 Linux 系统都已经稍微优化过,所以这个命令最多是用来测试效能啦! 而且建议你不要随便调整硬盘参数,文件系统容易出问题喔!除非你真的知道你调整的数据是啥! 

  1. 如果你是使用 SATA 硬盘的话,这个命令唯一可以做的,就是最后面那个测试的功能而已啰! 虽然这样的测试不是很准确,至少是一个可以比较的基准。鸟哥在我的 cluster 机器上面测试的 SATA (/dev/sda) 与 RAID (/dev/sdb) 结果如下,可以提供给你参考看看。 

 本文转自:http://vbird.dic.ksu.edu.tw/linux_basic/0230filesystem_3.php