Chinaunix

标题: Linux命令大总结(二) [打印本页]

作者: h0000001    时间: 2006-12-14 17:50
标题: Linux命令大总结(二)
常用的硬盘与硬件管理命令
硬盘
物理组成:硬盘由多个硬盘盘片组成,每个磁盘盘片上都有一个磁头(Head)进行该硬盘盘片的读写工作,当磁头固定不动,硬盘盘片旋转一周所走轨迹就是磁道(Track),所有硬盘盘片上同一段磁道组成了磁柱(Cylinder),一段磁道就是硬盘分区时的最小单位,即扇区(Sector),最小的硬盘存储物理量,通常为512 bytes.

文件系统(Filesystem)
主引导扇区(Master Boot Recoder.MBR)主引导扇区可以说是一块硬盘中最重要的地方,因为它记录了所有硬盘的分割信息,以及启动时可进行启动管理程序的写入等.MBR最大的限制在于它不够大,不足以存储所有的信息,仅能提供最多4个分区的记忆,因此,一块硬盘的主分区(P)与逻辑分区(E)数量之和最多只能有4个,并且扩展分区最多只能有一个.
块(Block):文件在磁盘中会被存储在一人固定大小的块中,即Block,Block的大小通常为2的次方,另外,由于磁盘的扇区物理量通常为0.5K(512Bytes),所以Block通常设为0.5K的整倍数,EXT2预设Block为4K.不过需要注意的是,一个Block最多仅能容纳一个文件,所以当一个不足4K的文件存储时,其剩余的空间将不会再被使用.Block的大小与inode有一定的关联,若Block规划得太小,则磁盘的Block数量会大增,造成inode在指向Block时搜索时间大大增加,又会造成大文件读写效率低下.另外需要注意的是,当系统读取某一个文件时,则该文件所处Block信息会被加载以内存中,所以该磁盘块会被放置的高速缓存区中.若这些块数据被改变,刚开始只有主存储器的块数据会被改变,且缓存区中的块数据会被标记为Dirty,而此时磁盘物理Block尚未被修正,所以,这些"Dirty"块的数据必须写到磁盘中,以保证磁盘物理Block上的数据与主存储器中的块数据的一致性.这也正是Linux系统非正常关机,或者突发性地跳电时,总是会造成系统耗费大量时间用于磁盘检验的原因.
superblock:进行分区时,每个磁盘分区就是一个文件系统(filesystem),而每个文件系统起始位置的Block就称为superblock.superblock的作用是存储诸如文件系统的大小,空Block和填满的Block,以及各自总数和其他诸如此类的信息,也就是说,当要使用这个磁盘分区(或者说文件系统)进行数据存取的时候,第一个要经过的就是superblock块,所以,superblock坏了,这个磁盘分区也就不能用了.
inode:就文件系统而言,一个inode是inode table中的一个项,inode包含了所有文件相关的信息,如名称,大小,连接的数量,数据建立日期,修改及存取时间等.它也包含了磁盘Block的文件指针(pointer),指针用来记录文件的存储位置.要规划inode,可以使用mke2fs工具.


查看硬盘或目录的容量的命令
df    查看硬盘的总容量,己用容量与inode等.
语法:   #df [-ikm]
-i:   使用i-nodes显示结果
-k:   使用KBytes显示结果
-m:   使用MBytes显示结果


du   查看文件己用容量
语法:   #du [-abckms] [folder_name & file_name]
-a:   列出所有的文件与目录,默认值是列出目录的值
-b:   列出的值以bytes输出
-c:   最后求总total
-k:   列出的值以KB输出
-m:   列出的值以MB输出
-s:   只列出最后求总的值


常用的磁盘管理命令
fdisk    硬盘分区工具
语法:    #fdisk [-l][device_name]
        -l:  直接列出该硬盘设备的分区
fdisk最主要的工作就是修改分区表,并没有实际地将硬盘切切割割.它会定义某一个分区是从n1磁柱到n2磁柱之间,因此,如果硬盘分区错误,只要在格式化之前将分区表复原,就可以将硬盘原来的数据恢复过来.

附加:一块硬盘最大的逻辑分区可以达到64个(总数,包含1-4的主分区),但是并非所有的Linux版本都会将所有的逻辑分区对应的磁盘代号都写入系统中,如Red Hat,它仅列出1-16个代号,其他的就得自己动手了.Mandrake则自动检测,当以fdisk设定好分区后,磁盘对应的磁盘代号则会自动在/dev/中设定.不过有时还是得自己庙宇磁盘代号,用mknod指令.


mknod   
语法:   #mknod [device][bcp][Major][Minor]
b:    设定节点为外部设备文档
c:    设定节点为接口设备,如键盘
p:    建立FIFO


mke2fs     Linux下重要的格式化工具
语法:    #mke2fs [-b block-size][-i inode-size]
        #mke2fs [-c]
        #mke2fs [-L]
        #mke2fs [-j]
说明:
-b:   设定每个数据块占用的大小,目前支持的大小有1024,2048和4096三种
-i:   设定inode值
-c:   检查磁盘错误,会比较慢
-L:   设定这个扇区的label(表头名称)
-j:   建立ext3这个具有日志管理功能的文件格式


e2label    修改硬盘的label(表头名称)的工具
语法:    #e2label [/dev/hd...][label_name]
example:  #e2label /dev/hda1 /   

fsck    检查硬盘有没有坏轨
语法:   #fsck [-Aar][device_name]
-A:   依据/etc/fstab的内容,将所有的设备都扫描一次(通常启动过程中就会执行此指令)
-a:   自动修复检查到的问题扇区,所以不用一直按Y.
-r:   一定要让用户决定是否需要修复,与-a相反.
注意:通常只有身为root且在系统有问题的时候才能使用这个命令,在正常情况下使用此指令可能会对文件造成危害.在fsck一个分区之前,一定要先umount这个分区.最好是在单人维护模式(runlevel1)下使用这个命令.


sync     将内存中的数据同步写入硬盘
语法:    #sync ; sync
在正常情况下,为了提高系统效率,很多时候运行程序产生的临时文件都不会直接存在硬盘中,而是存在内存中.内存的数据传递速度比硬盘快几十倍,所以这样有助于提高整个系统的效率.然而这也产生一个困扰,那就是当系统不正常关机时,可能会使一些己经改变但尚没存入硬盘的数据遗失(因为还在内存中),这时可以使用sync,它可以直接将系统暂存在内存中的数据回存写入硬盘中.


关于启动盘
mkbootdisk      制作启动软盘
语法:    #mkbootdisk --device /dev/fd0 `uname -r`
--device:   后面接设备,通常接的就是软盘/dev/fd0


fdformat     用来低级格式化软盘
语法:     #fdformat [device_name]
example:  #fdformat /dev/fd0H1440   



硬盘的装载
mount
语法:   #mount [-ahlV]
       #mount -t type /dev/hdxx /mountpoint
       #mount -o [options]
       #umount /mountpoint
-a:      依照/etc/fstab的内容装载所有相关的硬盘
-h:      只列出mount相关的参数,并不装载任何设备
-l:      列出当前己经装载的设备,文件系统名称与装载点
-V:      列出mount的版本信息
type:    将后面/dev/hdxx设备以type的文件格式装载到/mountpoint这个点,常见的type有下面几个:
     vfat,msdos:  是支持windows系统的文件格式,vfat较常用
     ext,ext2:    是Linux的主要文件格式
     iso9660:     光驱的文件格式
     nfs,ntfs,ufs: windows2000使用的NTFS格式
-o:     些参数后面接的项很多,如下:
     rw:     让装载的硬盘为可擦写
     suid:   允许该硬盘配置文件为SUID状态
     exec:   允许该硬盘执行二行制文件
     auto:   允许该硬盘使用mount -a参数设定
     nouser: 禁止他人(非root用户)使用装载功能,这是默认值
     async:  允许硬盘进行异步记录(内存与硬盘不同步,最常用)
     defaults:同时具有rw,suid,dev,exec,auto,nouser,async这些功能
     nosuid: 不允许该硬盘具有SUID文件属性
     ro:     设定为只读属性
     remount:让系统己经装载的硬盘重新被装载



umount
语法:  #umount [-f] [device|mount_point]
-f:  强制将该文件系统退出,最常用在无法退出的NTFS文件系统中.
注:在卸载一个目录的时候,一定要退出该目录.


hdparm    硬盘效能测试与启用
语法:     #hdparm [-cdmXTt] [device_name]
-c:    提供32位的存取模式,支持的形式有:
       -c0:关闭32位存以模式
       -c1:开启32位存取模式
       -c3:以较为物殊的sync模式开启32位存取模式(建议值)
-d:    是否启动硬盘的DMA模式,0为关闭,1为开启
-m:    设定multiple sector I/O模式,通常默认为16,建议值为16
-X:    设定IDE/ATA模式的项,支持如下设定:
       -X34:开启DMA mode 2  (ATA)
       -X66:开启ultra DMA mode 2 (ATA66)
-T:    测试缓存区cache的存取效能
-t:    测试硬盘的实际存取效能(较正确)
example:  #hdparm -Tt /dev/hda   
          #hdparm -d0 /dev/hda   
          #hdparm -d1 -c3 -X66   
可以将开启磁盘DMA模式写入/etc/rc.d/rc.local中




文件系统的装载
装载软盘
#mount -t ext2 /dev/fd0 /mnt/floppy   
#mount -t vfat /dev/fd0 /mnt/floppy   
#umount /dev/fd0   

装载光驱
#modprobe cdrom         
#modprobe ide-cd        
#mount -t iso9660 /dev/cdrom /mnt/cdrom   
#umount /mnt/cdrom        

装载Windows分区
#mount -t vfat /dev/hda1 /mnt/win98   

安装新硬盘的步骤:
1.首先以fdisk分好区(#fdisk /dev/hdb)
2.再以mke2fs格式化分区(#mke2fs /dev/hdb1)
3.建立一个挂载点(#mkdir /mnt/newhard)
4.装载新建的文件系统(#mount -t ext2 /dev/hdb1 /mnt/newhard)


设定启动实时装载方式(/etc/fstab)
系统装载的一些限制:
1.根目录"/"必须装载,而且一定先于其他装载点.
2.其他装载点必须为己建立的目录,可以任意指定,但一定要遵守必要的系统目录架构原则.
3.所有装载点在同一时间内只能装载一次
4.所有分区在同一时间内只能装载一次
5.若进行卸载,必须先将工作目录移到装载点(及其子目录)之外.






建立与装载虚拟内存文件
增加虚拟内存,有两个方法
.设定一个Swap分区
.建立一个虚拟内存的文件

一:建立虚拟内存分区(Swap分区)
1.fdisk /dev/hdxx   
2.mkswap /dev/hdxx   
3.swapon /dev/hdxx   
4.swapoff /dev/hdxx  

二:建立虚拟内存文件(Swap文件)
1.dd if=/dev/zero of=/tmp/swap bs=4k count=16382  
2.mkswap /tmp/swap   
3.free   
4.swapon /tmp/swap   
5.free   
6.swapoff /tmp/swap  









本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/18616/showart_215664.html




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2