磁盘参数修订[转自vbird]

某些时刻,你可能会希望修改一下目前文件系统的一些相关信息,举例来说,你可能要修改 Label name , 或者是 journal 的参数,或者是其他硬盘运行时的相关参数 (例如 DMA 启动与否~)。 这个时候,就得需要底下这些相关的命令功能啰~

mknod

还记得我们说过,在 Linux 底下所有的装置都以文件来代表吧!但是那个文件如何代表该装置呢? 很简单!就是透过文件的 major 与 minor 数值来替代的~所以,那个 major 与 minor 数值是有特殊意义的,不是随意配置的喔!举例来说,在鸟哥的这个测试机当中, 那个用到的磁盘 /dev/hdc 的相关装置代码如下:

[[email protected] ~]# ll /dev/hdc*
brw-r----- 1 root disk 22, 0 Oct 24 15:55 /dev/hdc
brw-r----- 1 root disk 22, 1 Oct 20 08:47 /dev/hdc1
brw-r----- 1 root disk 22, 2 Oct 20 08:47 /dev/hdc2
brw-r----- 1 root disk 22, 3 Oct 20 08:47 /dev/hdc3
brw-r----- 1 root disk 22, 4 Oct 24 16:02 /dev/hdc4
brw-r----- 1 root disk 22, 5 Oct 20 16:46 /dev/hdc5
brw-r----- 1 root disk 22, 6 Oct 25 01:33 /dev/hdc6

上表当中 22 为主要装置代码 (Major) 而 0~6 则为次要装置代码 (Minor)。 我们的 Linux 核心认识的装置数据就是透过这两个数值来决定的!举例来说,常见的硬盘文件名 /dev/hda 与 /dev/sda 装置代码如下所示:

磁盘文件名 Major Minor
/dev/hda 3 0~63
/dev/hdb 3 64~127
/dev/sda 8 0-15
/dev/sdb 8 16-31

如果你想要知道更多核心支持的硬件装置代码 (major, minor) 请参考官网的连结:

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

使用参数

[[email protected] ~]# mknod 装置文件名 [bcp] [Major] [Minor]
选项与参数:
装置种类:
   b  :配置装置名称成为一个周边储存设备文件,例如硬盘等;
   c  :配置装置名称成为一个周边输入设备文件,例如鼠标/键盘等;
   p  :配置装置名称成为一个 FIFO 文件;
Major :主要装置代码;
Minor :次要装置代码;

由上述的介绍我们知道 /dev/hdc10 装置代码 22, 10,请创建并查阅此装置

[[email protected] ~]# mknod /dev/hdc10 b 22 10
[[email protected] ~]# ll /dev/hdc10
brw-r--r-- 1 root root 22, 10 Oct 26 23:57 /dev/hdc10
# 上面那个 22 与 10 是有意义的,不要随意配置啊!

创建一个 FIFO 文件,档名为 /tmp/testpipe

[[email protected] ~]# mknod /tmp/testpipe p
[[email protected] ~]# ll /tmp/testpipe
prw-r--r-- 1 root root 0 Oct 27 00:00 /tmp/testpipe
# 注意啊!这个文件可不是一般文件,不可以随便就放在这里!
# 测试完毕之后请删除这个文件吧!看一下这个文件的类型!是 p 喔!

e2label

我们在 mkfs 命令介绍时有谈到配置文件系统标头 (Label) 的方法。 那如果格式化完毕后想要修改标头呢?就用这个 e2label 来修改了。那什么是 Label 呢? 我们拿你曾用过的 Windows 系统来说明。当你打开『文件总管』时,C/D等槽不是都会有个名称吗? 那就是 label (如果没有配置名称,就会显示『本机磁盘驱动器』的字样)

这个东西除了有趣且可以让你知道磁盘的内容是啥玩意儿之外,也会被使用到一些配置文件案当中! 举例来说,刚刚我们聊到的磁盘的挂载时,不就有用到 Label name 来进行挂载吗? 目前 CentOS 的配置文件,也就是那个 /etc/fstab 文件的配置都默认使用 Label name 呢! 那这样做有什么好处与缺点呢?

  • 优点:不论磁盘文件名怎么变,不论你将硬盘插在哪个 IDE / SATA 接口,由于系统是透过 Label ,所以,磁盘插在哪个接口将不会有影响;
  • 缺点:如果插了两颗硬盘,刚好两颗硬盘的 Label 有重复的,那就惨了~ 因为系统可能会无法判断哪个磁盘分区槽才是正确的!

鸟哥一直是个比较『硬派』作风,所以我还是比较喜欢直接利用磁盘文件名来挂载啦! 不过,如果没有特殊需求的话,那么利用 Label 来挂载也成! 但是你就不可以随意修改 Label 的名称了!

使用参数

[[email protected] ~]# e2label 装置名称  新的Label名称

将 /dev/hdc6 的标头改成 my_test 并观察是否修改成功?

[[email protected] ~]# dumpe2fs -h /dev/hdc6
Filesystem volume name:   vbird_logical  <==原本的标头名称
.....底下省略.....

[[email protected] ~]# e2label /dev/hdc6 "my_test"
[[email protected] ~]# dumpe2fs -h /dev/hdc6
Filesystem volume name:   my_test        <==改过来啦!
.....底下省略.....

tune2fs

[[email protected] ~]# tune2fs [-jlL] 装置代号
选项与参数:
-l  :类似 dumpe2fs -h 的功能~将 superblock 内的数据读出来~
-j  :将 ext2 的 filesystem 转换为 ext3 的文件系统;
-L  :类似 e2label 的功能,可以修改 filesystem 的 Label 喔!

列出 /dev/hdc6 的 superblock 内容

[[email protected] ~]# tune2fs -l /dev/hdc6

这个命令的功能其实很广泛啦~上面鸟哥仅列出很简单的一些参数而已, 更多的用法请自行参考 man tune2fs 。比较有趣的是,如果你的某个 partition 原本是 ext2 的文件系统,如果想要将他升级成为 ext3 文件系统的话,利用 tune2fs 就可以很简单的转换过来啰~

hdparm

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

[[email protected] ~]# hdparm [-icdmXTt] 装置名称
选项与参数:
-i  :将核心侦测到的硬盘参数显示出来!
-c  :配置 32-bit (32位)存取模式。这个 32 位存取模式指的是在硬盘在与
      PCI 接口之间传输的模式,而硬盘本身是依旧以 16 位模式在跑的!
      默认的情况下,这个配置值都会被打开,建议直接使用 c1 即可!
-d  :配置是否激活 dma 模式, -d1 为启动, -d0 为取消;
-m  :配置同步读取多个 sector 的模式。一般来说,配置此模式,可降低系统因为
      读取磁盘而损耗的效能~不过, WD 的硬盘则不怎么建议配置此值~
      一般来说,配置为 16/32 是优化,不过,WD 硬盘建议值则是 4/8 。
      这个值的最大值,可以利用 hdparm -i /dev/hda 输出的 MaxMultSect
      来配置喔!一般如果不晓得,配置 16 是合理的!
-X  :配置 UtraDMA 的模式,一般来说, UDMA 的模式值加 64 即为配置值。
      并且,硬盘与主板芯片必须要同步,所以,取最小的那个。一般来说:
      33 MHz DMA mode 0~2 (X64~X66)
      66 MHz DMA mode 3~4 (X67~X68)
      100MHz DMA mode 5   (X69)
      如果您的硬盘上面显示的是 UATA 100 以上的,那么配置 X69 也不错!
-T  :测试缓存区 cache 的存取效能
-t  :测试硬盘的实际存取效能 (较正确!)

取得我硬盘的最大同步存取 sector 值与目前的 UDMA 模式

[[email protected] ~]# hdparm -i /dev/hdc
 Model=IC35L040AVER07-0, FwRev=ER4OA41A, SerialNo=SX0SXL98406 <==硬盘的厂牌型号
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=40
 BuffType=DualPortCache, BuffSize=1916kB, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=80418240
 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5 <==有 * 为目前的值
 AdvancedPM=yes: disabled (255) WriteCache=enabled
 Drive conforms to: ATA/ATAPI-5 T13 1321D revision 1:
    ATA/ATAPI-2 ATA/ATAPI-3 ATA/ATAPI-4 ATA/ATAPI-5
# 这颗硬盘缓冲存储器只有 2MB(BuffSize),但使用的是 udma5 !还可以。

由上个范例知道最大 16 位/UDMA 为 mode 5,所以可以配置为:

[[email protected] ~]# hdparm -d1 -c1 -X69 /dev/hdc

测试这颗硬盘的读取效能

[[email protected] ~]# hdparm -Tt /dev/hdc
/dev/hdc:
 Timing cached reads:   428 MB in  2.00 seconds = 213.50 MB/sec
 Timing buffered disk reads:  114 MB in  3.00 seconds =  38.00 MB/sec
# 鸟哥的这部测试机没有很好啦~这样的速度.....差强人意~

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

[[email protected] ~]# hdparm -Tt /dev/sda /dev/sdb
/dev/sda:
 Timing cached reads:   4152 MB in  2.00 seconds = 2075.28 MB/sec
 Timing buffered disk reads:  304 MB in  3.01 seconds = 100.91 MB/sec

/dev/sdb:
 Timing cached reads:   4072 MB in  2.00 seconds = 2036.31 MB/sec
 Timing buffered disk reads:  278 MB in  3.00 seconds =  92.59 MB/sec

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

时间: 2024-09-30 05:43:27

磁盘参数修订[转自vbird]的相关文章

linux查缺补漏之磁盘参数修订

linux磁盘参数修订 档案代表装置 在linux下面我们都知道可以用相应的档案代表一个装置,比如 /dev/sdb1代表sdb硬盘的第一个分隔槽,该装置通过major和minor来标示对应代替的装置 brw-rw-- 1 root disk 8, 0 5月 12 20:16 /dev/sda brw-rw-- 1 root disk 8, 1 5月 12 19:48 /dev/sda1 brw-rw-- 1 root disk 8, 10 5月 12 19:48 /dev/sda10 brw-

攻城狮在路上(叁)Linux(二十三)--- linux磁盘参数修改(设备代码、设备名)

一.mknod:设置设备代码 linux中,所有的设备都是用文件来表示,文件通过major与minor数值来判断. major为主设备代码,minor为设备代码(需要查询),示例如下: /dev/hda ---------major:3------minor:0~63 /dev/hdb----------major:3------minor:64~127 /dev/sda----------major:8------minor:0~15 ... 命令格式:mknod 设备名 [bcp] [maj

移动磁盘参数错误要如何办啊

参数错误说明这个盘的文件系统结构损坏了.在平时如果数据不重要,那么可以直接格式化就能用了.但是有的时候里面的数据很重要,那么就必须先恢复出数据再格式化.具体恢复方法可以看正文了解(不格式化的恢复方法) 工具/软件:星空数据恢复软件 步骤1:先下载并解压程序打开后,直接双击需要恢复的分区,接着右击软件图标选择<以管理员身份运行>(如果是xp系统可以直接双击打开软件) 步骤2:软件打开后,直接双击需要恢复的分区 步骤3:软件会很快将扫描到的文件,放到与要恢复盘同名的目录中 步骤4:勾上所有需要恢复

第八章、Linux 磁盘与文件系统管理

第八章.Linux 磁盘与文件系统管理 1. 认识 EXT2 文件系统 1.1 硬盘组成与分割的复习 1.2 文件系统特性: 索引式文件系统 1.3 Linux 的 EXT2 文件系统(inode): data block, inode table, superblock, dumpe2fs 1.4 与目录树的关系 1.5 EXT2/EXT3 文件的存取与日志式文件系统的功能 1.6 Linux 文件系统的运行 1.7 挂载点的意义 (mount point) 1.8 其他 Linux 支持的文

鸟哥的LINUX私房菜基础篇第三版 阅读笔记 三 Linux磁盘与文件系统管理

一.认识EXT2文件系统: a.硬盘的组成:转动小马达+存储的磁盘+读写的机械臂 b.磁盘的一些概念 扇区为最小的物理储存单位,每个扇区为512B 将扇区组成一个圆,就是磁柱,磁柱是最小的分割单位 第一扇区最重要,a.主要开机区及分割表,其中MBR占有446B,而partition table 则占有64B c.inode block superblock 三个数据的意义 inode:存放文件的属性,权限,一个档案占用一个inode,同时记录次档案的数据所在的block号 block:实际存放的

oracle浅话深入之——LINUX笔记(1)

软件就有 i386, i686 及 x86_64 之分 */--------一些工具指令------------- cal */# 日历 cal 2009 */# 日历年 cal [month] [year] cal 10 2009 */# 日历年月 cal 13 2009 */# 日历月份 bc */# 计算器+-*/ quit */# 退出 */# [tab]键可做为命令补齐或档名补齐 */# -------------说明命令的用途------------------- man date

指令篇:磁盘检查和参数的修改___tune2fs

磁盘的检查: tune2fs -l /dev/sda5 (对/dev/sda5 进行检查) 理解下面每一行的意思: [email protected]:~$ fdisk -l /dev/sd sda sda1 sda2 sda3 sda5 sda6 sda7 sdb sdb1 [email protected]:~$ tune2fs -l /dev/sda5 tune2fs 1.42.9 (4-Feb-2014) tune2fs: 权限不够 当尝试打开 /dev/sda5 时 找不到有效的文件系

磁盘分区总结

echo '- - -' > /sys/class/scsi_host/host2/scan #刚添加的硬盘运行该命令才显示盘符 echo '- - -' >/sys/class/scsi_host/host2/scan partprobe /dev/sdb  #同步 partprobe /dev/sdb  #同步 ext2,ext3,vfat,reiserfs,iso9660(光盘格式) -n /etc/mtab mount  -o remount,rw,auto/ mount -L  &q

linux——(4)磁盘与文件系统管理

概念一:linux-ext2文件系统 ext2在分区的时候会分成多个组块(block group)和一个启动扇区(boot sector),每一个组块内又有superblock.File system Description.block bitmap.iNode bitmap.iNode table.data block六个部分. boot sector:可以安装引导装载程序,利用它能做出多重引导的环境. superblock:记录整个文件系统的相关信息大小一般为1024bytes,可以用dum