Linux系统命令之磁盘管理
2010-03-01 09:58:14 阿炯

Linux系统命令(磁盘管理)
sync
symlinks(symbolic links)
swapon
swapoff
sfdisk
mpartition
mkswap
mkisofs(make iso file system)
mkinitrd(make initial ramdisk images)
mkfs(make file system)
mkfs.minix
mke2fs(make ext2 file system)
mkdosfs(make Dos file system)
mkbootdisk(make boot disk)
mformat
mbadblocks
losetup(loop setup)
hdparm(hard disk parameters)
fsconf(file system configurator)
fsck(file system check)
fsck.minix(file system check-minix filesystem)
fsck.ext2(file system check-second filesystem)
fdisk
ext2ed(ext2 file system editor)
e2fsck(ext2 file system check)
dd
cfdisk
badblocks
blockdev
块(block)设备查看指令


==================================
sync
功能说明:将内存缓冲区内的数据写入磁盘。
语  法:sync [--help][--version]
补充说明:在Linux系统中,当数据需要存入磁盘时,通常会先放到缓冲区内,等到适当的时刻再写入磁盘,如此可提高系统的执行效率。
参  数:
--help 显示帮助。
--version 显示版本信息。
-----------------------------------------------
symlinks(symbolic links)
功能说明:维护符号连接的工具程序。
语  法:symlinks [-cdrstv][目录]
补充说明:symlinks可检查目录中的符号连接,并显示符号连接类型。以下为symlinks可判断的符号连接类型:
absolute:符号连接使用了绝对路径。
dangling:原始文件已经不存在。
lengthy:符号连接的路径中包含了多余的"../"。
messy:符号连接的路径中包含了多余的"/"。
other_fs:原始文件位于其他文件系统中。
relative:符号连接使用了相对路径。
参  数:
-c 将使用绝对路径的符号连接转换为相对路径。
-d 移除dangling类型的符号连接。
-r 检查目录下所有子目录中的符号连接。
-s 检查lengthy类型的符号连接。
-t 与-c一并使用时,会显示如何将绝对路径的符号连接转换为相对路径,但不会实际转换。
-v 显示所有类型的符号连接。
----------------------------------------------
swapon
功能说明:启动系统交换区(swap area)。
语  法:swapon [-ahsV][-p ][设备]
补充说明:Linux系统的内存管理必须使用交换区来建立虚拟内存。
-a 将/etc/fstab文件中所有设置为swap的设备,启动为交换区。
-h 显示帮助。
-p 指定交换区的优先顺序。
-s 显示交换区的使用状况。
-V 显示版本信息。
----------------------------------------------
swapoff
功能说明:关闭系统交换区(swap area)。
语  法:swapoff [设备]
补充说明:swapoff实际上为swapon的符号连接,可用来关闭系统的交换区。
------------------------------------
sfdisk
功能说明:硬盘分区工具程序。
语  法:sfdisk [-?Tvx][-d ][-g ][-l ][-s ][-V ]
补充说明:sfdisk为硬盘分区工具程序,可显示分区的设置信息,并检查分区是否正常。
参  数:
-?或--help 显示帮助。
-d 显示硬盘分区的设置。
-g或--show-geometry 显示硬盘的CHS参数。
-l 显示后硬盘分区的相关设置。
-s 显示分区的大小,单位为区块。
-T或--list-types 显示所有sfdisk能辨识的文件系统ID。
-v或--version 显示版本信息。
-V或--verify 检查硬盘分区是否正常。
-x或--show-extend 显示扩展分区中的逻辑分区。
--------------------------------------------
mpartition
功能说明:建立或删除MS-DOS的分区。
语  法:mpartition [-acdfIprv][-b ][-h ][l ][-s ][-t ][驱动器代号]
补充说明:mpartition为mtools工具指令,可建立或删除磁盘分区。
参  数:
-a 将分区设置为可开机分区。
-b 建立分区时,指定要从第几个磁区开始建立分区。
-c 建立分区。
-d 将分区设置为无法开机的分区。
-f 强制地修改分区而不管检查时发生的错误信息。
-h 建立分区时,指定分区的磁头数。
-I 删除全部的分区。
-l 建立分区时,指定分区的容量大小,单位为磁区数。
-p 当要重新建立分区时,显示命令列。
-r 删除分区。
-s 建立分区时,指定每个磁轨的磁区数。
-t 建立分区时,指定分区的柱面数。
-v 与-p参数一并使用,若没有同时下达修改分区的命令,则显示目前分区的状态。
---------------------------------------
mkswap
功能说明:设置交换区(swap area)。
语  法:mkswap [-cf][-v0][-v1][设备名称或文件][交换区大小]
补充说明:mkswap可将磁盘分区或文件设为Linux的交换区。
参  数:
-c 建立交换区前,先检查是否有损坏的区块。
-f 在SPARC电脑上建立交换区时,要加上此参数。
-v0 建立旧式交换区,此为预设值。
-v1 建立新式交换区。
[交换区大小] 指定交换区的大小,单位为1024字节。
----------------------------------------------
mkisofs(make iso file system)
功能说明:建立ISO 9660映像文件。
语  法:mkisofs [-adDfhJlLNrRTvz][-print-size][-quiet][-A ][-abstract ][-b ][-biblio ][-c ][-C ][-copyright ][-hide ][-hide-joliet ][-log-file ][-m ][-M ][-o ][-p ][-P ][-sysid ][-V ][-volset ][-volset-size ][-volset-seqno ][-x ][目录或文件]
补充说明:mkisofs可将指定的目录与文件做成ISO 9660格式的映像文件,以供刻录光盘。
参  数:
-a或--all mkisofs通常不处理备份文件。使用此参数可以把备份文件加到映像文件中。
-A或-appid 指定光盘的应用程序ID。
-abstract 指定摘要文件的文件名。
-b或-eltorito-boot 指定在制作可开机光盘时所需的开机映像文件。
-biblio 指定ISBN文件的文件名,ISBN文件位于光盘根目录下,记录光盘的ISBN。
-c 制作可开机光盘时,mkisofs会将开机映像文件中的全-eltorito-catalog全部内容作成一个文件。
-C 将许多节区合成一个映像文件时,必须使用此参数。
-copyright 指定版权信息文件的文件名。
-d或-omit-period 省略文件后的句号。
-D或-disable-deep-relocation ISO 9660最多只能处理8层的目录,超过8层的部分,RRIP会自动将它们设置成ISO 9660兼容的格式。使用-D参数可关闭此功能。
-f或-follow-links 忽略符号连接。
-h 显示帮助。
-hide 使指定的目录或文件在ISO 9660或Rock RidgeExtensions的系统中隐藏。
-hide-joliet 使指定的目录或文件在Joliet系统中隐藏。
-J或-joliet 使用Joliet格式的目录与文件名称。
-l或-full-iso9660-filenames 使用ISO 9660 32字符长度的文件名。
-L或-allow-leading-dots 允许文件名的第一个字符为句号。
-log-file 在执行过程中若有错误信息,预设会显示在屏幕上。
-m或-exclude 指定的目录或文件名将不会房入映像文件中。
-M或-prev-session 与指定的映像文件合并。
-N或-omit-version-number 省略ISO 9660文件中的版本信息。
-o或-output 指定映像文件的名称。
-p或-preparer 记录光盘的数据处理人。
-print-size 显示预估的文件系统大小。
-quiet 执行时不显示任何信息。
-r或-rational-rock 使用Rock Ridge Extensions,并开放全部文件的读取权限。
-R或-rock 使用Rock Ridge Extensions。
-sysid 指定光盘的系统ID。
-T或-translation-table 建立文件名的转换表,适用于不支持Rock Ridge Extensions的系统上。
-v或-verbose 执行时显示详细的信息。
-V或-volid 指定光盘的卷册集ID。
-volset-size 指定卷册集所包含的光盘张数。
-volset-seqno 指定光盘片在卷册集中的编号。
-x 指定的目录将不会放入映像文件中。
-z 建立通透性压缩文件的SUSP记录,此记录目前只在Alpha机器上的Linux有效。
-----------------------------------------
mkinitrd(make initial ramdisk images)
功能说明:建立要载入ramdisk的映像文件。
语  法:mkinitrd [-fv][--omit-scsi-modules][--version][--preload=][--with=][映像文件][Kernel 版本]
补充说明:mkinitrd可建立映像文件,以供Linux开机时载入ramdisk。
参  数:
-f 若指定的映像问家名称与现有文件重复,则覆盖现有的文件。
-v  执行时显示详细的信息。
--omit-scsi-modules 不要载入SCSI模块。
--preload= 指定要载入的模块。
--with= 指定要载入的模块。
--version 显示版本信息。
------------------------------------------------------
mkfs(make file system)
功能说明:建立各种文件系统。
语  法:mkfs [-vV][fs][-f ][设备名称][区块数]
补充说明:mkfs本身并不执行建立文件系统的工作,而是去调用相关的程序来执行。
参  数:
fs 指定建立文件系统时的参数。
-t 指定要建立何种文件系统。
-v 显示版本信息与详细的使用方法。
-V 显示简要的使用方法。
--------------------------------------------
mkfs.minix
功能说明:建立Minix文件系统。
语  法:mkfs.minix [-cv][-i ][-l ][-n ][设备名称][区块数]
补充说明:mkfs.minix可建立Minix文件系统。
参  数:
-c 检查是否有损坏的区块。
-i 指定文件系统的inode总数。
-l 从指定的文件中,读取文件系统中损坏区块的信息。
-n 指定文件名称长度的上限。
-v 建立第2版的Minix文件系统。
---------------------------------------
mke2fs(make ext2 file system)
功能说明:建立ext2文件系统。
语  法:mke2fs [-cFMqrSvV][-b ][-f ][-i ][-N ][-l ][-L ][-m ][-R=][ 设备名称][区块数]
补充说明:mke2fs可建立Linux的ext2文件系统。
参  数:
-b 指定区块大小,单位为字节。
-c 检查是否有损坏的区块。
-f 指定不连续区段的大小,单位为字节。
-F 不管指定的设备为何,强制执行mke2fs。
-i 指定"字节/inode"的比例。
-N 指定要建立的inode数目。
-l 从指定的文件中,读取文件西中损坏区块的信息。
-L 设置文件系统的标签名称。
-m 指定给管理员保留区块的比例,预设为5%。
-M 记录最后一次挂入的目录。
-q 执行时不显示任何信息。
-r 指定要建立的ext2文件系统版本。
-R= 设置磁盘阵列参数。
-S 仅写入superblock与group descriptors,而不更改inode able inode bitmap以及block bitmap。
-v 执行时显示详细信息。
-V 显示版本信息。
--------------------------------------------
mkdosfs(make Dos file system)
功能说明:建立MS-DOS文件系统。
语  法:mkdosfs [-cv][-f ][-F ][-i ][-l ][-m ][-n ][-r ][-s ][设备名称][区块数]
补充说明:mkdosfs可在Linux下,将磁盘格式化为MS-DOS文件系统的格式。
参  数:
-c 检查是否有损坏的区块。
-f 指定FAT的数目,目前支持1与2两种选项。
-F 指定FAT记录的单位为12或16位。
-i 设置文件系统的磁盘序号。
-l 从指定的文件中,读取文件系统中损坏区块的信息。
-m 若以次文件系统开机,而却因操作系统没有正常安装,则会显示选项中所指定的信息文件内容。
-n 设置文件系统的磁盘标签名称。
-r 设置根目录最多能记载项目数。
-s 指定每个丛集所包含的磁区数。
-v 执行时显示详细的信息。
---------------------------------------------------
mkbootdisk(make boot disk)
功能说明:建立目前系统的启动盘。
语  法:mkbootdisk [--noprompt][--verbose][--version][--device ][--mkinitrdargs ][kernel 版本]
补充说明:mkbootdisk可建立目前系统的启动盘。
参  数:
--device 指定设备。
--mkinitrdargs 设置mkinitrd的参数。
--noprompt 不会提示用户插入磁盘。
--verbose 执行时显示详细的信息。
--version 显示版本信息。
-----------------------------------------------------
mformat
功能说明:对MS-DOS文件系统的磁盘进行格式化。
语  法:mformat [-1aCFIKX][-0 ][-2 ][-A ][-B ][-c ][-h ][-H ][-l ][-M ][-n ][-r ][-s ][-S ][-t ][驱动器代号]
补充说明:mformat为mtools工具指令,模拟MS-DOS的format指令,可将指定的磁盘或硬盘分区格式化为MS-DOS文件系统。
参  数:
-0 指定第0磁轨的数据传输率。
-1 不使用2M格式。
-2 指定在第0磁轨的第0个磁头的磁区数,也就是所谓的2M格式。
-a 指定产生Atari格式的序号。
-A 指定第0磁轨以外所有磁轨的数据传输率。
-B 从指定的文件来建立开机区。
-c 指定丛集大小,单位为磁区。
-C 建立磁盘MS-DOS文件系统的映像文件。
-F 以FAT32来格式化磁盘。
-H 指定隐藏磁区的数目。
-I 指定FAT32的frVersion编号。
-k 尽可能地保留原有的开机区。
-l 指定磁盘标签名称。
-M 指定MS-DOS文件系统所使用的磁区大小,预设应该与硬体磁区大小相同,单位为字节。
-n 指定序号。
-r 指定根目录的大小,单位为磁区。
-s 指定每一磁轨所包含的磁区数目。
-S 指定硬件磁区大小。
-t 指定柱面数目。
-X 格式化XDF磁盘。
------------------------------------
mbadblocks
功能说明:检查MS-DOS文件系统的磁盘是否有损坏的磁区。
语  法:mbadblocks [驱动器代号]
补充说明:mbadblocks为mtools工具指令,可用来扫描MS-DOS文件系统的磁盘驱动器,并标示出损坏的磁区。
----------------------------------------------------
losetup(loop setup)
功能说明:设置循环设备。
语  法:losetup [-d][-e ][-o ][循环设备代号][文件]
补充说明:循环设备可把文件虚拟成区块设备,籍以模拟整个文件系统,让用户得以将其视为硬盘驱动器,光驱或软驱等设备,并挂入当作目录来使用。
参  数:
-d 卸除设备。
-e 启动加密编码。
-o 设置数据平移的数目。
----------------------------
hdparm(hard disk parameters)
功能说明:显示与设定硬盘的参数。
语  法:hdparm [-CfghiIqtTvyYZ][-a ][-A ][-c ][-d ][-k ][-K ][-m ][-n ][-p ][-P ][-r ][-S ][-u ][-W ][-X ][设备]
补充说明:hdparm可检测,显示与设定IDE或SCSI硬盘的参数。
参  数:
-a 设定读取文件时,预先存入块区的分区数,若不加上选项,则显示目前的设定。
-A 启动或关闭读取文件时的快取功能。
-c 设定IDE32位I/O模式。
-C 检测IDE硬盘的电源管理模式。
-d 设定磁盘的DMA模式。
-f 将内存缓冲区的数据写入硬盘,并清楚缓冲区。
-g 显示硬盘的磁轨,磁头,磁区等参数。
-h 显示帮助。
-i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。
-I 直接读取硬盘所提供的硬件规格信息。
-k 重设硬盘时,保留-dmu参数的设定。
-K 重设硬盘时,保留-APSWXZ参数的设定。
-m 设定硬盘多重分区存取的分区数。
-n 忽略硬盘写入时所发生的错误。
-p 设定硬盘的PIO模式。
-P 设定硬盘内部快取的分区数。
-q 在执行后续的参数时,不在屏幕上显示任何信息。
-r 设定硬盘的读写模式。
-S 设定硬盘进入省电模式前的等待时间。
-t 评估硬盘的读取效率。
-T 平谷硬盘快取的读取效率。
-u 在硬盘存取时,允许其他中断要求同时执行。
-v 显示硬盘的相关设定。
-W 设定硬盘的写入快取。
-X 设定硬盘的传输模式。
-y 使IDE硬盘进入省电模式。
-Y 使IDE硬盘进入睡眠模式。
-Z 关闭某些Seagate硬盘的自动省电功能。
---------------------------------------------
fsconf(file system configurator)
功能说明:设置文件系统相关功能。
语  法:fsconf [--check]
补充说明:fsconf是Red Hat Linux发行版专门用来调整Linux各项设置的程序。
参  数:
--chedk 检查特定文件的权限。
-------------------------------------------------
fsck(file system check)
功能说明:检查文件系统并尝试修复错误。
语  法:fsck [-aANPrRsTV][-t ][文件系统...]
补充说明:当文件系统发生错误四化,可用fsck指令尝试加以修复。
参  数:
-a 自动修复文件系统,不询问任何问题。
-A 依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统。
-N 不执行指令,仅列出实际执行会进行的动作。
-P 当搭配"-A"参数使用时,则会同时检查所有的文件系统。
-r 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式。
-R 当搭配"-A"参数使用时,则会略过/目录的文件系统不予检查。
-s 依序执行检查作业,而非同时执行。
-t 指定要检查的文件系统类型。
-T 执行fsck指令时,不显示标题信息。
-V 显示指令执行过程。
---------------------------------------------------
fsck.minix(file system check-minix filesystem)
功能说明:检查文件系统并尝试修复错误。
语  法:fsck.minix [-aflmrsv][外围设备代号]
补充说明:当minix文件系统发生错误时,可用fsck.minix指令尝试加以参考。
参  数:
-a 自动修复文件系统,不询问任何问题。
-f 强制对该文件系统进行完整检查,纵然该文件系统在慨略检查下没有问题。
-l 列出所有文件名称。
-m 使用类似MINIX操作系统的警告信息。
-r 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式。
-s 显示该分区第一个磁区的相关信息。
-v 显示指令执行过程。
------------------------------------------------
fsck.ext2(file system check-second filesystem)
功能说明:检查文件系统并尝试修复错误。
语  法:fsck.ext2 [-acdfFnprsStvVy][-b ][-B ][-C ][-I ][-l/L ][-P ][外围设备代号]
补充说明:当ext2文件系统发生错误时,可用fsck.ext2指令尝试加以修复。
参  数:
-a 自动修复文件系统,不询问任何问题。
-b 指定分区的第一个磁区的起始地址,也就是Super Block。
-B 设置该分区每个区块的大小。
-c 检查指定的文件系统内,是否存在有损坏的区块。
-C 指定反叙述器,fsck.ext2指令会把全部的执行过程,都交由其逆向叙述,便于排错或监控程序执行的情形。
-d 详细显示指令执行过程,便于排错或分析程序执行的情形。
-f 强制对该文件系统进行完整检查,纵然该文件系统在慨略检查下没有问题。
-F 检查文件系统之前,先清理该保存设备块区内的数据。
-I 设置欲检查的文件系统,其inode缓冲区的区块数目。
-l 把文件中所列出的区块,视为损坏区块并将其标示出来,避免应用程序使用该区块。
-L 此参数的效果和指定"-l"参数类似,但在参考损坏区块文件标示损坏区块之前,会先将原来标示成损坏区块者统统清楚,即全部重新设置,而非仅是加入新的损坏区块标示。
-n 把欲检查的文件系统设成只读,并关闭互动模式,否决所有询问的问题。
-p 此参数的效果和指定"-a"参数相同。
-P 设置fsck.ext2指令所能处理的inode大小为多少。
-r 此参数将忽略不予处理,仅负责解决兼容性的问题。
-s 检查文件系统时,交换每对字节的内容。
-S 此参数的效果和指定"-s"参数类似,但不论该文件系统是否已是标准位顺序,一律交换每对字节的内容。
-t 显示fsck.ext2指令的时序信息。
-v 详细显示指令执行过程。
-V 显示版本信息。
-y 关闭互动模式,且同意所有询问的问题。
------------------------------------------------------
fdisk
功能说明:磁盘分区。
语  法:fdisk [-b ][-uv][外围设备代号] 或 fdisk [-l][-b ][-uv][外围设备代号...] 或 fdisk [-s ]
补充说明:fdisk是用来磁盘分区的程序,它采用传统的问答式界面,而非类似DOS fdisk的cfdisk互动式操作界面,因此在使用上较为不便,但功能却丝毫不打折扣。
参  数:
-b 指定每个分区的大小。
-l 列出指定的外围设备的分区表状况。
-s 将指定的分区大小输出到标准输出上,单位为区块。
-u 搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址。
-v 显示版本信息。
-------------------------------------------------
ext2ed(ext2 file system editor)
功能说明:ext2文件系统编辑程序。
语  法:ext2ed
补充说明:ext2ed可直接处理硬盘分区上的数据,这指令只有Red Hat Linux才提供。
参  数:
一般指令
setdevice[设备名称] 指定要处理的设备。
disablewrite 将ext2ed设为只读的状态。
enablewrite 将ext2ed设为可读写的状态。
help[指令] 显示个别指令的帮助。
next 移至下一个单位,单位会依目前所在的模式而异。
prev 移至前一个单位,单位会依目前所在的模式而异。
pgup 移至下一页。
pgdn 移至上一页。
set 修改目前的数据,参数会依目前所在的模式而异。
writedata 在执行此指令之后,才会实际修改分区中的数据。
ext2进入3种模式的指令:
super 进入main superblock,即Superblock模式。
group 进入指定的group,即Group模式。
cd 在inode模式下,进入指定的目录或文件,即Inode模式。
Superblock模式:
gocopy 进入指定的superblock备份。
setactivecopy 将目前所在的superblock,复制到main superblock。
Group模式:
blockbitmap 显示目前groupo的区块图。
inode 进入目前group的第一个inode。
inodebitmap 显示目前group的inode二进制码。
Inode模式:
dir 进入目录模式。
file 进入文件模式。
------------------------------------------------------
e2fsck(ext2 file system check)
功能说明:检查ext2文件系统的正确性。
语  法:e2fsck [-acCdfFnprsStvVy][-b ][-B ][-l ][-L ][设备名称]
补充说明:e2fsck执行后的传回值及代表意义如下。
0 没有任何错误发生。
1 文件系统发生错误,并且已经修正。
2 文件系统发生错误,并且已经修正。
4 文件系统发生错误,但没有修正。
8 运作时发生错误。
16 使用的语法发生错误。
128 共享的函数库发生错误。
参  数:
-a 不询问使用者意见,便自动修复文件系统。
-b 指定superblock,而不使用预设的superblock。
-B 指定区块的大小,单位为字节。
-c 一并执行badblocks,以标示损坏的区块。
-C 将检查过程的信息完整记录在file descriptor中,使得整个检查过程都能完整监控。
-d 显示排错信息。
-f 即使文件系统没有错误迹象,仍强制地检查正确性。
-F 执行前先清除设备的缓冲区。
-l 将文件中指定的区块加到损坏区块列表。
-L 先清除损坏区块列表,再将文件中指定的区块加到损坏区块列表。因此损坏区块列表的区块跟文件中指定的区块是一样的。
-n 以只读模式开启文件系统,并采取非互动方式执行,所有的问题对话均设置以"no"回答。
-p 不询问使用者意见,便自动修复文件系统。
-r 此参数只为了兼容性而存在,并无实际作用。
-s 如果文件系统的字节顺序不适当,就交换字节顺序,否则不做任何动作。
-S 不管文件系统的字节顺序,一律交换字节顺序。
-t 显示时间信息。
-v 执行时显示详细的信息。
-V 显示版本信息。
-y 采取非互动方式执行,所有的问题均设置以"yes"回答。
----------------------------------------------
dd
功能说明:读取,转换并输出数据。
语  法:dd [bs=][cbs=][conv=][count=][ibs=][if=][obs=][of=][seek=][skip=][--help][--version]
补充说明:dd可从标准输入或文件读取数据,依指定的格式来转换数据,再输出到文件,设备或标准输出。
参  数:
bs= 将ibs( 输入)与obs(输出)设成指定的字节数。
cbs= 转换时,每次只转换指定的字节数。
conv= 指定文件转换的方式。
count= 仅读取指定的区块数。
ibs= 每次读取的字节数。
if= 从文件读取。
obs= 每次输出的字节数。
of= 输出到文件。
seek= 一开始输出时,跳过指定的区块数。
skip= 一开始读取时,跳过指定的区块数。
--help 帮助。
--version 显示版本信息。
-------------------------------------------
cfdisk
功能说明:磁盘分区。
语  法:cfdisk [-avz][-c -h -s ][-P ][外围设备代号]
补充说明:cfdisk是用来磁盘分区的程序,它十分类似DOS的fdisk,具有互动式操作界面而非传统fdisk的问答式界面,您可以轻易地利用方向键来操控分区操作。
参  数:
-a 在程序里不用反白代表选取,而以箭头表示。
-c 忽略BIOS的数值,直接指定磁盘的柱面数目。
-h 忽略BIOS的数值,直接指定磁盘的磁头数目。
-P 显示分区表的内容,附加参数"r"会显示整个分区表的详细资料,附加参数"s"会依照磁区的顺序显示相关信息,附加参数"t"则会以磁头,磁区,柱面的方式来显示资料。
-s 忽略BIOS的数值,直接指定磁盘的磁区数目。
-v 显示版本信息。
-z 不读取现有的分区,直接当作没有分区的新磁盘使用。
-------------------------------------------
badblocks
功能说明:检查磁盘装置中损坏的区块。
语  法:badblocks [-svw][-b ][-o ][磁盘装置][磁盘区块数][启始区块]
补充说明:执行指令时须指定所要检查的磁盘装置,及此装置的磁盘区块数。
参  数:
-b 指定磁盘的区块大小,单位为字节。
-o 将检查的结果写入指定的输出文件。
-s 在检查时显示进度。
-v 执行时显示详细的信息。
-w 在检查时,执行写入测试。
[磁盘装置] 指定要检查的磁盘装置。
[磁盘区块数] 指定磁盘装置的区块总数。
[启始区块] 指定要从哪个区块开始检查。


Linux创建文件系统及挂载文件系统流程详解
作者:北南南北
来自: LinuxSir.Org
摘要:本文对新增硬盘,切割硬盘,创建硬盘分区,为硬盘分区创建文件系统,以及加载文件系统的流程做总结性论述;主要是为初学者弄清楚这一操作过程;本文涉及fdisk、mkfs、mount ... ... 等工具;对/etc/fstab 进行了解说;还有磁盘扫描工具fsck 等介绍;
++++++++++++++++++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++++++++++++++++++
阅读此文,必须具备知识点:
《Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍》
《实例解说 fdisk 使用方法》
《合理规划您的硬盘分区》
《Fedora / Redhat 软件包管理指南》
如果您想加载一个分区(文件系统),首先您得确认文件系统的类型,然后才能挂载使用,比如通过mount 加载,或者通过修改 /etc/fstab来开机自动加载。
如果您想添加一个新的分区,或者增加一个新的硬盘,您要通过分区工具来添加分区,然后要创建分区的文件系统,然后才是挂载文件系统;比如通过mount 加载,或者通过修改 /etc/fstab来开机自动加载;本文总有一部份是您想要的;比如在新的分区上创建文件系统,如何挂载;如何卸载文件系统或者设备(比如cdrom )等;我建您最好通读本文,然后根据自己的需要再做选择性实践; Linux的一个小问题涉及的很多方面的知识,有时一篇文档是难以说清楚;我为了尽可能详细解说每一个过程,所以把分区工具、创建文件系统工具、查看文件系统的工具分开来说,主要是让初学者比较容易理解。希望您能理解本人的用心;传说北南长的比较丑,但心的还是善良的 ... ...我是不会用一些垃圾文档来害您 ... ... 哈哈 ... ... 言归正传,开文~~~~

一、对存储设备的分区
我们这里所指的存储设备主要是本地硬盘、移动硬盘(比如USB 和1394接口的硬盘);由于磁盘很大并且为了满足我们各种需要,所以把硬盘分成若干个分区;比如我们可以用这个分区来安装Linux系统,那个分区用来安装Windows系统... ... ;这点小事大家都明白;至于如何在 Linux中进行硬盘分区操作,我们推荐您用 fdisk ,目前看来也是最好用的分区工具;其它工具比如parted 和cfdisk在某一方面有点优点,但这些优点可能为大家带来一些方便 ,比如 parted中的数据备份功能,这个功能对老手来说可能是优点,但对新手来说,的确是有风险的;所以我们还是推荐您用 fdisk 分区工具; fdisk 的使用说明: 请参考:《实例解说 fdisk 使用方法》

二、存储设备进行格式化,即建立文件系统的过程
1、文件系统的一点介绍
我们对存储设备分区还是远远不够的,我们还要对这些新增分区进行格式化;一个分区只有建立了某种文件系统后,这个分区才能使用;建立文件系统过程,就是用相应格式化工具格式化分区的过程,这个过程和我们在Windows中格式化某个分区为NTFS分区类似;没有什么高深的内容,只是所用的工具不一样罢了;在Linux操作系统中,目前几乎支持目前主流的文件系统,比如NTFS(只读)、FAT(可读可写)、ext2、ext3、reiserfs、hfs (MAC 操作系统的文件系统)、swap 交换分区... ... 还有一些咱们不熟悉的操作系统的文件系统等;在Linux中,我们常用的文件系统无非是上面例出的这些;如果您新增了一个硬盘,可能想格式化成 Linux的文件系统,最佳选择是 reiserfs 或ext3;目前ext2已被 ext3取代;我们不推荐用ext2文件系统,ext2的使用风险比较大;速度最快的文件系统,当属reiserfs;reiserfs 还有很多优点,比如更安全;ext3是Redhat认为最好的文件系统,所以在Fedora 4.0在安装时,特地为reiserfs 的选择弄出点麻烦;相对来说reiserfs还是比ext3要优秀;如果想深入学习文件系统的,您可以到官方论坛找相应的资料,最好是实践实践;

2、格式化工具介绍和使用;
以fedora 4.0为例,我们常用的工具mkfs mkfs.ext3 mkfs.reiserfs mkfs.ext2 mkfs.msdos mkfs.vfat mkswap 提示:如果您不能创建reiserfs 文件系统,也就是说没有mkfs.reiserfs 或者mkreiserfs 命令,是您没有安装reiserfs-utils工具包,请参考:《让Fedora 支持创建reiserfs 文件系统,以及创建reiserfs文件系统的一点说明》
1)mkfs的使用;
使用方法:
[root@localhost freeoa]# mkfs -t 文件系统  存储设备
注:这里的文件系统是要指定的,比如 ext3 ;reiserfs ;ext2 ;fat32 ;msdos 等... ...设备比如是一个硬盘的分区,软盘,光驱等.. ... 在格式化分区之前,您得懂得如何查看硬盘分区情况,并有针对性的格式化;比如用 fdisk -l 来查看; 请参考:《Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍》 比如我想格式化一个移动U盘中的一个分区;全景应该是:
[root@localhost freeoa]# fdisk -l
Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1         765     6144831    7  HPFS/NTFS
/dev/hda2             766        2805    16386300    c  W95 FAT32 (LBA)
/dev/hda3            2806        9729    55617030    5  Extended
/dev/hda5            2806        3825     8193118+  83  Linux
/dev/hda6            3826        5100    10241406   83  Linux
/dev/hda7            5101        5198      787153+  82  Linux swap / Solaris
/dev/hda8            5199        6657    11719386   83  Linux
/dev/hda9            6658        7751     8787523+  83  Linux
/dev/hda10           7752        9729    15888253+  83  Linux
Disk /dev/sda: 1035 MB, 1035730944 bytes
256 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          25      201568+  83  Linux
/dev/sda2              26         125      806400    5  Extended
/dev/sda5              26          50      201568+  83  Linux
/dev/sda6              51          76      200781     83  Linux
我们可以看到有sda这个设备,所以可以用 fdisk -l /dev/sda专门来显示他的分区情况;比如我想格式化 /dev/sda6 分区为 ext3文件系统,则为:
[root@localhost freeoa]# mkfs -t ext3  /dev/sda6
mke2fs 1.37 (21-Mar-2005)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
50200 inodes, 200780 blocks
10039 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
25 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information:  注:在这里直接回车;
done
This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
这样就格式化好了,sda6现在就是ext3文件系统了;我们就可以用mount 加载这个分区,然后使用这个文件系统;
[root@localhost freeoa]# mkdir /mnt/sda6
[root@localhost freeoa]# chmod 777 /mnt/sda6
[root@localhost freeoa]# mount /dev/sda6   /mnt/sda6
当然您也可以把分区格式化成其它的文件系统;比如我们把 /dev/sda6格式化为ext3 、ext2、reiserfs、fat32、msdos 文件系统,命令格式如下;
[root@localhost freeoa]# mkfs -t ext3  /dev/sda6
[root@localhost freeoa]# mkfs -t ext2  /dev/sda6
[root@localhost freeoa]# mkfs -t reiserfs  /dev/sda6
[root@localhost freeoa]# mkfs -t fat32   /dev/sda6
[root@localhost freeoa]# mkfs -t msdos   /dev/sda6
... ...
2)mkfs.ext3 mkfs.reiserfs mkfs.ext2 mkfs.msdos mkfs.vfat mke2fs 的介绍;
我们先说了一个mkfs 工具后,我们再来介绍 mkfs.ext3 mkfs.reiserfs mkfs.ext2 mkdosfs mkfs.msdos mkfs.vfat ,其实mkfs 在执行的命令的时候,也是调用的这个工具,这也是我先把mkfs介绍的主要原因;通过文件名,我们就知道这些工具是支持什么文件系统;这些命令为我们提供了更多的方便;
[root@localhost freeoa]# mkfs.ext3    /dev/sda6 注:把该设备格式化成ext3文件系统
[root@localhost freeoa]# mke2fs -j   /dev/sda6 注:把该设备格式化成ext3文件系统
[root@localhost freeoa]# mkfs.ext2  /dev/sda6 注:把该设备格式化成ext2文件系统
root@localhost freeoa]# mke2fs    /dev/sda6 注:把该设备格式化成ext2文件系统
[root@localhost freeoa]# mkfs.reiserfs  /dev/sda6 注:把该设备格式化成reiserfs文件系统
[root@localhost freeoa]# mkfs.vfat   /dev/sda6 注:把该设备格式化成fat32文件系统
[root@localhost freeoa]# mkfs.msdos   /dev/sda6 注:把该设备格式化成fat16文件系统,msdos文件系统就是fat16;
[root@localhost freeoa]# mkdosfs   /dev/sda6 注:把该设备格式化成fat16文件系统,同mkfs.msdos
... ...
2)mkswap 把一个分区格式化成为swap交换区;
[root@localhost freeoa]# mkswap /dev/sda6  注:创建此分区为swap 交换分区
[root@localhost freeoa]# swapon  /dev/sda6  注:加载交换分区;
[root@localhost freeoa]# swapoff  /dev/sda6  注:关闭交换分区;
我们查看系统已经加载的swap交换分区;
[root@localhost freeoa]# swapon  /dev/sda6  注:加载交换分区;
[root@localhost freeoa]# swapon -s               
Filename                                Type            Size    Used    Priority
/dev/hda7                               partition       787144  0       -1
/dev/sda6                               partition       225144  0       -3
为什么我的系统有两个交换分区?因为我用移动U盘做的实验,主要是为写教程之用;sda6是我在U盘上建的swap分区;如果让swap开机就加载,应该改 /etc/fstab文件,加类似如下一行:
/dev/sda6         swap                    swap    defaults        0 0  注:把此行中的/dev/hda7 改为您的交换分区就行;
或者把命令行直接写入 /etc/rc.d/rc.local中也行;
swapon  /dev/sda6
如果您的硬盘不能再分区,您可以创建一个swap文件
[root@localhost freeoa]# dd if=/dev/zero of=/tmp/swap bs=1024 count=524288 注:创建一个大小为512M 的swap 文件,在/tmp目录中;您可以根据自己的需要的大小来创建swap 文件;
读入了 524288+0 个块
输出了 524288+0 个块
[root@localhost freeoa]# mkswap /tmp/swap 注:把/tmp/swap 文件,创建成swap 交换区
Setting up swapspace version 1, size = 536866 kB
no label, UUID=d9d8645d-92cb-4d33-b36e-075bb0a2e278
[root@localhost freeoa]# swapon /tmp/swap   注:挂载swap
[root@localhost freeoa]# swapon -s
Filename Type Size Used Priority
/dev/hda7 partition 787144 888 -1
/tmp/swap file 524280 0 -2
注意:其实我们在安装系统的时候,就已经划分了交换分区;查看/etc/fstab,应该swap的行;如果您在安装系统时没有添加swap,可以通过这种办法来添加;

三、挂载文件系统
挂载文件系统,目前有两种方法,一是通过 mount 来挂载,另一种方法是通过/etc/fstab文件来开机自动挂载;
1、通过mount 来挂载磁盘分区(或存储设备)
mount的用法其实也简单,我们说几个常用的;
挂载文件系统的命令格式:
[root@localhost freeoa]# mount  [-t  文件系统 ]  [-o  选项]  设备  目录
注: -t 通过这个参数,我们来指定文件系统的类型,一般的情况下不必指定有时也能识加,-t 后面跟 ext3 、ext2 、reiserfs、vfat 、ntfs 等,其中 vfat 是fat32和fat16分区文件系统所所用的参数;如果您忘记了文件系统,也可以在-t 后面加auto ; -o 这个选项,主要选项有权限、用户、磁盘限额、语言编码等,但语言编码的选项,大多用于vfat和ntfs文件系统;由于选项太多,还是请您看看 man mount ;这里不多说;设备 指存储设备,比如/dev/hda1, /dev/sda1 ,cdrom 等...至于您的系统中有哪些存储设备,主要通过 fdisk -l 或者查看 /etc/fstab 或 dmesg ;一般的情况下光驱设备是/dev/cdrom ;软驱设备是/dev/fd0 ;硬盘及移动硬盘以 fdisk -l 的输出为准;
1)对光驱和软驱的挂载;
举例:
[root@localhost freeoa]# mount /dev/cdrom
[root@localhost freeoa]# mount /dev/fd0
第一行是mount 光驱,至于mount 到哪了,我们可以通过查看 /etc/fstab来查看;同理软驱/dev/fd0设备也是如此;比如我们在/etc/fstab
/dev/hdc                /media/cdrecorder       auto    users,exec,noauto,managed 0 0
我们可以肯定的是光盘被mount 到了 /media/cdrecorder 目录;但我们也可以自己来指定cdrom 挂载的位置 ;比如 /mnt/cdrom ,所以我们也可以这样来挂载光驱;
[root@localhost freeoa]#mkdir /mnt/cdrom
[root@localhost freeoa]# mount /dev/cdrom  /mnt/cdrom
我们先建一个目录,然后执行mount 命令,这样cdrom 就挂在 /mnt/cdrom 中了;我们就可以在/mnt/cdrom 中查看光盘中资料和文件;这个目录您想怎么建就怎么建。用什么目录不是最重要的。重要的是您知道自己在做什么就行了。比如我们也可以把这个目录建成 dvdrom ;然后用 mount /dev/cdrom /mnt/dvdrom 来挂载;有时我们的设备是COMBO的,有支持dvd cd 还能支持刻录的;我们最好查一下光驱设备的,主要有两个方法,一是通过查看 /etc/fstab ,二是通过ls -l 来查看;比如我们在/etc/fstab中查看到类似下面的一行;
/dev/hdc                /media/cdrecorder       auto    users,exec,noauto,managed 0 0
通过这个,我们能知道hdc 就是cdrom 也是dvdrom的设备 ,更是 cdrecorder的设备;为了验证我们的说法;请用ls -l 来列文件;
[root@localhost freeoa]# ls -lh /dev/dvd*
lrwxrwxrwx  1 root root 3 2005-09-13  /dev/dvd -> hdc
[root@localhost freeoa]# ls -lh /dev/cdrom
lrwxrwxrwx  1 root root 3 2005-09-13  /dev/cdrom -> hdc
[root@localhost freeoa]# ls -lh /dev/cdwriter
lrwxrwxrwx  1 root root 3 2005-09-13  /dev/cdwriter -> hdc
这不一目了然了吗?dvd 、cdrom 、cdwriter 的文件名都链接到了hdc这个设备,所以光驱设备根源就是/dev/hdc ;所以我们也可以这样挂载光驱;
[root@localhost freeoa]# mkdir /mnt/cdrom
[root@localhost freeoa]# mount  /dev/hdc   /mnt/cdrom
2)挂载硬盘和移动硬盘的文件系统;
一个分区只有创建了文件系统后才能使用,前面我们说过了,我们在Linux大多用的是ext2 、ext3、reiserfs、fat32、msdos 、ntfs等;
[1]挂载Linux文件系统;
对于ext2 、ext3 、reiserfs 不需要指定文件系统的编码,其实mount 也没有这个功能;这些Linux文件系统,如果出现编码问题,一般是通过export LANG来指定;所以挂载这些文件系统比较简单;首先我们得建一个文件系统挂载的目录;我们前面已经提到了;一个有文件系统的分区要挂到系统中,必须要有一个挂载点;这个挂载点就是一个目录;比如我们通过fdisk -l 得知hda5 是Linux分区,并且创建了文件系统,比如是reiserfs 文件系统吧;
[root@localhost freeoa]# fdisk -l /dev/hda
Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1         765     6144831    7  HPFS/NTFS
/dev/hda2             766        2805    16386300    c  W95 FAT32 (LBA)
/dev/hda3            2806        9729    55617030    5  Extended
/dev/hda5            2806        3825     8193118+  83  Linux
/dev/hda6            3826        5100    10241406   83  Linux
/dev/hda7            5101        5198      787153+  82  Linux swap / Solaris
/dev/hda8            5199        6657    11719386   83  Linux
/dev/hda9            6658        7751     8787523+  83  Linux
/dev/hda10           7752        9729    15888253+  83  Linux
我们先用fdisk -l 来查看一下分区情况:我们想要挂载/dev/hda5分区,比如hda5分区创建的是reiserfs文件系统;
[root@localhost freeoa]# mkdir /mnt/hda5/   注:先创建一个挂载目录;
[root@localhost freeoa]# chmod 777  /mnt/hda5/    注:设置/mnt/hda5的权限为任何用户可写可读可执行;这样所有的用户都能在写入;
[root@localhost freeoa]# mount -t reiserfs /dev/hda5 /mnt/hda5    注:通过-t reiserfs 来指定/dev/hda5是reiserfs 文件系统, 并且挂载到/mnt/hda5目录;
[root@localhost freeoa]# mount  -t auto   /dev/hda5 /mnt/hda5   注:假如我们不知道hda5上reiserfs 文件系统,我们可以用 -t auto 让系统定夺,然后挂载到/mnt/hda5 ;
[root@localhost freeoa]# mount /dev/hda5 /mnt/hda5   注:不加任何参数,直接 mount   /dev/hda5 到/mnt/hda5;系统自动判断分区文件系统;
是不是被挂载了,我们通过df -lh 来查看;
[root@localhost freeoa]# df -lh
Filesystem            容量  已用 可用 已用% 挂载点
/dev/hda8              11G  8.5G  1.9G  83% /
/dev/shm              236M     0  236M   0% /dev/shm
/dev/hda10             16G  6.9G  8.3G  46% /mnt/hda10
/dev/hda5             7.9G  5.8G  2.1G  74% /mnt/hda5
3)卸载文件系统umount ;
命令用法:
[root@localhost freeoa]# umount  设备或挂载目录
举例:
[root@localhost freeoa]# mount -t auto /dev/hda5 /mnt/hda5   注:挂载/dev/hda5;
[root@localhost freeoa]# df -lh       注:查看/dev/hda5是否被挂载;
Filesystem            容量  已用 可用 已用% 挂载点
/dev/hda8              11G  8.5G  1.9G  83% /
/dev/shm              236M     0  236M   0% /dev/shm
/dev/hda10             16G  6.9G  8.3G  46% /mnt/hda10
/dev/hda5             7.9G  5.8G  2.1G  74% /mnt/hda5
[root@localhost freeoa]# umount /dev/hda5  注:卸载/dev/hda5
[root@localhost freeoa]# df -lh        注:看是否卸载了/dev/hda5;
Filesystem            容量  已用 可用 已用% 挂载点
/dev/hda8              11G  8.5G  1.9G  83% /
/dev/shm              236M     0  236M   0% /dev/shm
/dev/hda10             16G  6.9G  8.3G  46% /mnt/hda10
[root@localhost freeoa]#umount /dev/cdrom  注:卸载cdrom ;
[root@localhost freeoa]#umount  /dev/fd0   注:卸载软驱;
... ... 再说一个查看分区是否被挂载了的命令,直接用 mount -s
[root@localhost freeoa]# mount -s
2、通过/etc/fstab文件来开机自动挂载文件系统
1)理解fstab
上面我们说了mount挂载存储设备文件系统的办法;现在我们再来说一说在/etc/fstab 中实现开机自动挂载文件系统的办法;首先我们要查看 /etc/fstab ;主要看他的规划写法;
# This file is edited by fstab-sync - see 'man fstab-sync' for details
LABEL=/1                /                       ext3    defaults        1 1
/dev/devpts             /dev/pts                devpts  gid=5,mode=620  0 0
/dev/shm                /dev/shm                tmpfs   defaults        0 0
/dev/proc               /proc                   proc    defaults        0 0
/dev/sys                /sys                    sysfs   defaults        0 0
LABEL=SWAP-hda7         swap                    swap    defaults        0 0
/dev/hdc                /media/cdrecorder       auto    users,exec,noauto,managed 0 0
第一字段:设备名,在这里表示是文件系统; 有时我们把挂载文件系统也说成挂载分区; 在这个字段中也可以用分区标签;在例子中/LABEL=/1就是Fedora 系统安装分区的标签,至于是在哪个分区,可以用 df -lh 来查看;
[root@localhost freeoa]# df -lh
Filesystem            容量  已用 可用 已用% 挂载点
/dev/hda8              11G  8.5G  1.9G  83% /
/dev/shm              236M     0  236M   0% /dev/shm
/dev/hda10             16G  6.9G  8.3G  46% /mnt/hda10
我们可以知道 LABEL=/1是/dev/hda8的标签;那我们用什么命令来创建硬盘分区的标签呢?对于ext3和ext2文件系统,我们可以用 e2label 来设置
e2label device [newlabel]
比如我们想把文件系统为ext3 的分区/dev/hda5的标签设备为 /5 ,我们应该执行如下的命令:
[root@localhost freeoa]# e2label /dev/hda5  /5  
[root@localhost freeoa]# mkdir /mnt/hda5  注:创建挂载/dev/hda5分区的目录;
[root@localhost freeoa]# chmod 777 /mnt/hda5  注:打开权限,所有用户可读可写可执行;
然后我们要改/etc/fstab 中加一行
/5         /mnt/hda5                    ext3     defaults        0 0
警告: 请不要在您的Linux的安装分区(也就是Linux系统/ 所在的分区)实践,会导致您的Linux系统崩溃;如果想实践,请在其它分区测试;如果是reiserfs文件系统,我们应该用 [root@localhost freeoa]# reiserfstune -l 标签 设备 举例:比如我为reiserfs 文件系统 /dev/hda10设置标签为 /10 ;
[root@localhost freeoa]# reiserfstune -l /10 /dev/hda10
我们在/etc/fstab中加入一行;
/10              /mnt/hda10              reiserfs defaults       0 0
警告:请不要在您的Linux的安装分区(也就是Linux系统/ 所在的分区)实践,会导致您的Linux系统崩溃;如果想实践,请在其它分区测试;第二字段:文件系统的挂载点;
第三字段:文件系统类型;第四字段:mount 命令的选项,和mount 中的-o 同理;defaults包括这些选项 rw, suid, dev, exec, auto, nouser, async;通过实践,这个默认的还能满足我们的需要;至于这些选项的意思,请参看man mount ;第五字段:表示文件系统是否需要dump 备份,是真假关系;1是需要,0 是不需要;第六字段: 是否在系统启动时,通过fsck磁盘检测工具来检查文件系统,1是需要,0是不需要,2是跳过;基于这些认识;比如我们要开机自动挂载/dev/hda5 ;我们可以如下做:
[root@localhost freeoa]# mkdir /mnt/hda5/   注:先创建一个挂载目录;
[root@localhost freeoa]# chmod 777  /mnt/hda5/    注:设置/mnt/hda5的权限为任何用户可写可读可执行;这样所有的用户都能在写入。
然后我们在/etc/fstab 中加如下的一行;
/dev/hda5              /mnt/hda5             reiserfs defaults       0 0
这样重启机器就能看到效果了。

四、对文件系统进行扫描fsck
大家对Windows中的scandisk不寞生吧,在Linux中就有类似这样的工具fsck,不过fsck 可不仅仅是扫描,还能修正文件系统的一些问题。值得注意的是fsck 扫描文件系统时一定要在单用户模式、修复模式或把设备umount后进行。警告:如果扫描正在运行中的系统,会造成系统文件损坏;如果您的系统是正常,请不要用扫描工具,她可能会把您的系统搞坏掉,fsck运行是有危险的;以Fedora 为例,文件系统扫描工具有 fsck fsck.ext2 fsck.jfs fsck.msdos fsck.vfat fsck.ext3 fsck.reiserfs(reiserfsck)其中fsck 默认支持文件系统ext2,如果想支持ext3文件系统的扫描,应该加-j 参数,最好是我们应该根据不同的文件系统来调用不同的扫描工具,比如 fsck.ext2,fsck.jfs,fsck.msdos,fsck.ext3,fsck.reiserfs(reiserfsck)等。我们也可以根据自己的文件系统选择不同的扫描工具;举例:扫描/dev/hda10分区(基于reiserfs文件系统 );
[root@localhost freeoa]# fsck.reiserfs /dev/hda10
reiserfsck 3.6.19 (2003 www.namesys.com)
*************************************************************
** If you are using the latest reiserfsprogs and  it fails **
** please  email bug reports to reiserfs-list@namesys.com, **
** providing  as  much  information  as  possible --  your **
** hardware,  kernel,  patches,  settings,  all reiserfsck **
** messages  (including version),  the reiserfsck logfile, **
** check  the  syslog file  for  any  related information. **
** If you would like advice on using this program, support **
** is available  for $25 at  www.namesys.com/support.html. **
*************************************************************
Will read-only check consistency of the filesystem on /dev/hda10
Will put log info to 'stdout'
Do you want to run this program?[N/Yes] (note need to type Yes if you do):Yes
###########
reiserfsck --check started at Wed Sep 14 08:54:17 2005
###########
Replaying journal..
Reiserfs journal '/dev/hda10' in blocks [18..8211]: 0 transactions replayed
Checking internal tree..finished
Comparing bitmaps..finished
Checking Semantic tree:
finished
No corruptions found   注:没有发现错误;
There are on the filesystem:
Leaves 2046
Internal nodes 15
Directories 130
Other files 2305
Data block pointers 1863657 (70565 of them are zero)
Safe links 0
###########
reiserfsck finished at Wed Sep 14 08:54:33 2005
###########
对于fsck.ext2和fsck.ext3常用的几个选项:
-p         Automatic repair (no questions) 注:自动修复文件系统存在的问题;
-y         Assume "yes" to all questions   注:如果文件系统有问题,会跳出提示是否修复,如果修复请按y;
-c         Check for bad blocks and add them to the badblock list 注:对文件系统进行坏块检查;这是一个极为漫长的过程;
-n         Make no changes to the filesystem   注:不对文件系统做任何改变,只要扫描,以检测是否有问题;
举例:比如 /dev/hda6 (文件系统是ext3的),我想扫描并自动修复;
[root@localhost freeoa]# fsck.ext3  -p /dev/hda6
注意:针对不同文件系统,最好用相应的工具;虽然有时fsck 在不加参数的情况下能识别不同的文件系统;对于不同工具的最为详细的参数,请参看--help或者man ,谢谢。。
后记:创建文件系统和加载文件系统就算写的差不多了;再高深的可能也不是我所能写的。为了写文件系统系统的挂载,我已经写过几篇文档。可能还得需补充几篇短小文档,以及还有一个总结性的文档;比如Fedora Core 4.0 默认安装不支持创建reiserfs 文件系统,解决办法是安装reiserfs-utils ,这也是需要补充的。

------------------------------------------------------
Linux档案管理指令集
1、档案目录管理--cd
名称 : cd
使用权限 : 所有使用者
使用方式 : cd [dirName]
说明 : 变换工作目录至 dirName。 其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home directory (也就是刚 login 时所在的目录)。
另外,"~" 也表示为 home directory 的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录。
范例 : 跳到 /usr/bin/ :
cd /usr/bin
跳到自己的 home directory :
cd ~
跳到目前目录的上上两层 :
cd ../..
cd - 返回进入当前目录前所在目录

2、文件系统--df
名称:df
使用权限: 所有使用者>
使用方式: df [选项]... [FILE]...
显示档案系统的状况,或是看所有档案系统的状况(预设值)
-a, --all 包含所有的具有 0 Blocks 的档案系统
--block-size={SIZE} 使用 {SIZE} 大小的 Blocks
-h, --human-readable 使用人类可读的格式(预设值是不加这个选项的...)
-H, --si 很像 -h, 但是用 1000 为单位而不是用 1024
-i, --inodes 列出 inode 资讯,不列出已使用 block
-k, --kilobytes 就像是 --block-size=1024
-l, --local 限制列出的档案结构
-m, --megabytes 就像 --block-size=1048576
--no-sync 取得资讯前不 sync (预设值)
-P, --portability 使用 POSIX 输出格式
--sync 在取得资讯前 sync
-t, --type=TYPE 限制列出档案系统的 TYPE
-T, --print-type 显示档案系统的形式
-x, --exclude-type=TYPE 限制列出档案系统不要显示 TYPE
-v (忽略)
--help 显示这个帮手并且离开
--version 输出版本资讯并且离开

3、dirs
功能说明:显示目录记录。
语  法:dirs [+/-n -l]
补充说明:显示目录堆叠中的记录。
参  数:
+n   显示从左边算起第n笔的目录。
-n   显示从右边算起第n笔的目录。
-l   显示目录完整的记录。

4、du
du(disk usage)
功能说明:显示目录或文件的大小。
语  法:du [-abcDhHklmsSx][-L ][-X
][--block-size][--exclude=][--max-depth=或--dereference   显示选项中所指定符号连接的源文件大小。
-m或--megabytes   以1MB为单位。
-s或--summarize   仅显示总计。
-S或--separate-dirs   显示个别目录的大小时,并不含其子目录的大小。
-x或--one-file-xystem   以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X或--exclude-from=   在指定目录或文件。
--exclude=   略过指定的目录或文件。
--max-depth=   超过指定层数的目录后,予以忽略。
--help   显示帮助。
--version   显示版本信息。

5、edquota
功能说明:编辑用户或群组的quota。
语  法:edquota [-p ][-ug][用户或群组名称...] 或 edquota [-ug] -t
补充说明:edquota预设会使用vi来编辑使用者或群组的quota设置。
参  数:
-u   设置用户的quota,这是预设的参数。
-g   设置群组的quota。
-p   将源用户的quota设置套用至其他用户或群组。
-t   设置宽限期限。

6、eject
功能说明:退出抽取式设备。
语  法:eject [-dfhnqrstv][-a ][-c ][设备]
补充说明:若设备已挂入,则eject会先将该设备卸除再退出。
参  数:
[设备]   设备可以是驱动程序名称,也可以是挂入点。
-a或--auto   控制设备的自动退出功能。
-c或--changerslut   选择光驱柜中的光驱。
-d或--default   显示预设的设备,而不是实际执行动作。
-f或--floppy   退出抽取式磁盘。
-h或--help   显示帮助。
-n或--noop   显示指定的设备。
-q或--tape   退出磁带。
-r或--cdrom   退出光盘。
-s或--scsi   以SCSI指令来退出设备。
-t或--trayclose   关闭光盘的托盘。
-v或--verbose   执行时,显示详细的说明。

7、mcd
名称:mcd
使用权限:所有使用者
使用方式:
mcd [msdosdirectory]
说明:可变更 mtools 系列指令目前在 MSDOS 磁碟上的工作目录。与 MSDOS 的 CD 指令不同,mcd 亦可变更工作磁碟。
参数:
没有参数时会传回目前的工作目录。
范例:
mcd a: emp 变更目前工作目录到 a: emp 中。
mcd 传回目前工作目录。

8、mdeltree
名称:mdeltree
使用权限:所有使用者
使用方式:
mdeltree [-v] msdosdirectory [msdosdirectories...]
说明:
本程序可用来删除 MSDOS 格式档案及目录。
mdeltree 会将所指定的目录与目录之下的所有档案与目录都删除掉。如果所指定的档案或目录不存在,则会传回错误讯息。
参数:
-v 显示更多的讯息。
范例:
mcopy a:msdosdir . 将 A 槽磁片根目录中的 msdosdir 目录以下的档案与目录都删除掉。

9、mdu
功能说明:显示MS-DOS目录所占用的磁盘空间。
语  法:mdu [-as][目录]
补充说明:mdu为mstools工具指令,可显示MS-DOS文件系统中目录所占用的磁盘空间。
参  数:
-a   显示每个文件及整个目录所占用的空间。
-s   仅显示整个目录所占用的空间。

10、mkdir
名称: mkdir 
使用权限:于目前目录有适当权限的所有使用者
使用方式:mkdir [-p] dirName
说明:建立名称为 dirName 之子目录。
参数:-p 确保目录名称存在,不存在的就建一个。
范例:
在工作目录下,建立一个名为 AAA 的子目录 :
mkdir AAA
在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。若 BBB 目录原本不存在,则建立一个。(注:本例若不加 -p,且原本 BBB目录不存在,则产生错误。)
mkdir -p BBB/Test

11、mlabel
名称:mlabel
使用权限:所有使用者
使用方式:
mlabel [-vcs] drive:[new_label]
说明:
本程序可设定磁碟的标签 (Label)。
如果磁碟上设定过标签,mlabel 会将他显示给使用者。如果没有指定新标签并且没有指定 c 或 s 选项,mlabel 会提示使用者输入新的标签。如果直接按下 Enter ,就会将原本的标签删除。
参数:
-v 更多的讯息。
-c 清除原有的标签,不出现提示讯息。
-s 显示目前的标签,不出现提示讯息。
范例:
mlabel a:newlabel。将 A 槽磁碟的标签更改为 newlabel。

12、mmd
功能说明:在MS-DOS文件系统中建立目录。
语  法:mmd [目录...]
补充说明:mmd为mtools工具指令,模拟MS-DOS的md指令,可在MS-DOS的文件系统中建立目录。

13、mrd
功能说明:删除MS-DOS文件系统中的目录。
语  法:mrd [目录...]
补充说明:mrd为mtools工具指令,模拟MS-DOS的rd指令,可删除MS-DOS的目录。

14、mzip
功能说明:Zip/Jaz磁盘驱动器控制指令。
语  法:mzip [-efpqruwx]
补充说明:mzip为mtools工具指令,可设置Zip或Jaz磁盘驱动区的保护模式以及执行退出磁盘的动作。
参  数:
-e   退出磁盘。
-f   与-e参数一并使用,不管是否已经挂入磁盘中的文件系统,一律强制退出磁盘。
-p   设置磁盘的写入密码。
-q   显示目前的状态。
-r   将磁盘设为防写状态。
-u   退出磁盘以前,暂时解除磁盘的保护状态。
-w   将磁盘设为可写入状态。
-x   设置磁盘的密码。

15、pwd
功能说明:显示工作目录。
语  法:pwd [--help][--version]
补充说明:执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。
参  数:
--help   在线帮助。
--version   显示版本信息。

16、quota
功能说明:显示磁盘已使用的空间与限制。
语  法:quota [-quvV][用户名称...] 或 quota [-gqvV][群组名称...]
补充说明:执行quota指令,可查询磁盘空间的限制,并得知已使用多少空间。
参  数:
-g   列出群组的磁盘空间限制。
-q   简明列表,只列出超过限制的部分。
-u   列出用户的磁盘空间限制。
-v   显示该用户或群组,在所有挂入系统的存储设备的空间限制。
-V   显示版本信息。

17、mount
名称 : mount
使用权限 : 系统管理者或/etc/fstab中允许的使用者
使用方式 :
mount [-hV]
mount -a [-fFnrsvw] [-t vfstype]
mount [-fnrsvw] [-o options [,...]] device | dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir
说明 :
将某个档案的内容解读成档案系统,然后将其挂在目录的某个位置之上。当这个命令执行成功后,直到我们使用 umnount 将这个档案系统移除为止,这个命令之下的所有档案将暂时无法被调用。
这个命令可以被用来挂上任何的档案系统,你甚至可以用 -o loop 选项将某个一般的档案当成硬盘机分割挂上系统。这个功能对于 ramdisk,romdisk 或是 ISO 9660 的影像档之解读非常实用。
参数
-V
显示程序版本
-h
显示辅助讯息
-v
显示较讯息,通常和 -f 用来除错。
-a
将 /etc/fstab 中定义的所有档案系统挂上。
-F
这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。
-f
通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使用。
-n
一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。
-s-r
等于 -o ro
-w
等于 -o rw
-L
将含有特定标签的硬盘分割挂上。
-U
将档案分割序号为 的档案系统挂下。-L 和 -U 必须在/proc/partition 这种档案存在时才有意义。
-t
指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
-o async
打开非同步模式,所有的档案读写动作都会用非同步模式执行。
-o sync
在同步模式下执行。
-o atime
-o noatime
当 atime 打开时,系统会在每次读取档案时更新档案的『上一次调用时间』。当我们使用 flash 档案系统时可能会选项把这个选项关闭以减少写入的次数。
-o auto
-o noauto
打开/关闭自动挂上模式。
-o defaults
使用预设的选项 rw, suid, dev, exec, auto, nouser, and async.
-o dev
-o nodev-o exec
-o noexec
允许执行档被执行。
-o suid
-o nosuid
允许执行档在 root 权限下执行。
-o user
-o nouser
使用者可以执行 mount/umount 的动作。
-o remount
将一个已经挂下的档案系统重新用不同的方式挂上。例如原先是唯读的系统,现在用可读写的模式重新挂上。
-o ro
用唯读模式挂上。
-o rw
用可读写模式挂上。
-o loop=
使用 loop 模式用来将一个档案当成硬盘分割挂上系统。
范例
将 /dev/hda1 挂在 /mnt 之下。
#mount /dev/hda1 /mnt
将 /dev/hda1 用唯读模式挂在 /mnt 之下。
#mount -o ro /dev/hda1 /mnt
将 /tmp/image.iso 这个光碟的 image 档使用 loop 模式挂在 /mnt/cdrom之下。用这种方法可以将一般网络上可以找到的 Linux 光 碟 ISO 档在不烧录成光碟的情况下检视其内容。
#mount -o loop /tmp/image.iso /mnt/cdrom
相关命令umount

18、mmount
功能说明:挂入MS-DOS文件系统。
语  法:mmount [驱动器代号][mount参数]
补充说明:mmount为mtools工具指令,可根据[mount参数]中的设置,将磁盘内容挂入到Linux目录中。
参  数:
[mount参数]的用法请参考mount指令。

19、rmdir
名称:rmdir
使用权限:于目前目录有适当权限的所有使用者
使用方式: rmdir [-p] dirName
说明: 删除空的目录。
参数: -p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
范例:
将工作目录下,名为 AAA 的子目录删除 :
rmdir AAA
在工作目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后,BBB 目录成为空目录,则 BBB 亦予删除。
rmdir -p BBB/Test

20、rmt
功能说明:远端磁带传输协议模块。
语  法:rmt
补充说明:通过rmt指令,用户可通过IPC连线,远端操控磁带机的倾倒和还原操作。

21、stat
功能说明:显示inode内容。
语  法:stat [文件或目录]
补充说明:stat以文字的格式来显示inode的内容。

22、tree
功能说明:以树状图列出目录的内容。
语  法:tree [-aACdDfFgilnNpqstux][-I ][-P ][目录...]
补充说明:执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。
参  数:
-a   显示所有文件和目录。
-A   使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C   在文件和目录清单加上色彩,便于区分各种类型。
-d   显示目录名称而非内容。
-D   列出文件或目录的更改时间。
-f   在每个文件或目录之前,显示完整的相对路径名称。
-F   在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
-g   列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i   不以阶梯状列出文件或目录名称。
-I   不显示符合范本样式的文件或目录名称。
-l   如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n   不在文件和目录清单加上色彩。
-N   直接列出文件和目录名称,包括控制字符。
-p   列出权限标示。
-P   只显示符合范本样式的文件或目录名称。
-q   用"?"号取代控制字符,列出文件和目录名称。
-s   列出文件或目录大小。
-t   用文件和目录的更改时间排序。
-u   列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x   将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。

23、umount
功能说明:卸除文件系统。
语  法:umount [-ahnrvV][-t ][文件系统]
补充说明:umount可卸除目前挂在Linux目录中的文件系统。
参  数:
-a   卸除/etc/mtab中记录的所有文件系统。
-h   显示帮助。
-n   卸除时不要将信息存入/etc/mtab文件中。
-r   若无法成功卸除,则尝试以只读的方式重新挂入文件系统。
-t   仅卸除选项中所指定的文件系统。
-v   执行时显示详细的信息。
-V   显示版本信息。
[文件系统]   除了直接指定文件系统外,也可以用设备名称或挂入点来表示文件系统。

24、ls
称 : ls
使用权限 : 所有使用者
使用方式 : ls [-alrtAFR] [name...]
说明 : 显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。
参数 :
-a 显示所有档案及目录 (ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出)
-l 除档案名称外,亦将档案型态、权限、拥有者、档案大小等资讯详细列出
-r 将档案以相反次序显示(原定依英文字母次序)
-t 将档案依建立时间之先后次序列出
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F 在列出的档案名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 若目录下有档案,则以下之档案亦皆依序列出
范例:
列出目前工作目录下所有名称是 s 开头的档案,愈新的排愈后面 :
ls -ltr s*
将 /bin 目录以下所有目录及档案详细资料列出 :
ls -lR /bin
列出目前工作目录下所有档案及目录;目录于名称后加 "/", 可执行档于名称后加 "*" :
ls –AF

25、quotacheck
功能说明:检查磁盘的使用空间与限制。
语  法:quotacheck [-adgRuv][文件系统...]
补充说明:执行quotacheck指令,扫描挂入系统的分区,并在各分区的文件系统根目录下产生quota.user和quota.group文件,设置用户和群组的磁盘空间限制。
参  数:
-a   扫描在/etc/fstab文件里,有加入quota设置的分区。
-d   详细显示指令执行过程,便于排错或了解程序执行的情形。
-g   扫描磁盘空间时,计算每个群组识别码所占用的目录和文件数目。
-R   排除根目录所在的分区。
-u   扫描磁盘空间时,计算每个用户识别码所占用的目录和文件数目。
-v   显示指令执行过程。

26、quotaoff
功能说明:关闭磁盘空间限制。
语  法:quotaoff [-aguv][文件系统...]
补充说明:执行quotaoff指令可关闭用户和群组的磁盘空间限制。
参  数:
-a   关闭在/etc/fstab文件里,有加入quota设置的分区的空间限制。
-g   关闭群组的磁盘空间限制。
-u   关闭用户的磁盘空间限制。
-v   显示指令执行过程。

27、lndir
功能说明:连接目录内容。
语  法:lndir [-ignorelinks][-silent][源目录][目的目录]
补充说明:执行lndir指令,可一口气把源目录底下的文件和子目录统统建立起相互对应的符号连接。
参  数:
-ignorelinks   直接建立符号连接的符号连接。
-silent   不显示指令执行过程。

28、repquota
功能说明:检查磁盘空间限制的状态。
语  法:repquota [-aguv][文件系统...]
补充说明:执行repquota指令,可报告磁盘空间限制的状况,清楚得知每位用户或每个群组已使用多少空间。
参  数:
-a   列出在/etc/fstab文件里,有加入quota设置的分区的使用状况,包括用户和群组。
-g   列出所有群组的磁盘空间限制。
-u   列出所有用户的磁盘空间限制。
-v   显示该用户或群组的所有空间限制。

29、quotaon
功能说明:开启磁盘空间限制。
语  法:quotaon [-aguv][文件系统...]
补充说明:执行quotaon指令可开启用户和群组的才磅秒年空间限制,各分区的文件系统根目录必须有quota.user和quota.group配置文件。
参  数:
-a   开启在/ect/fstab文件里,有加入quota设置的分区的空间限制。
-g   开启群组的磁盘空间限制。
-u   开启用户的磁盘空间限制。
-v   显示指令指令执行过程。

--------------------------------------------
blockdev
功能说明:从命令行调用区块设备控制程序
语  法:blockdev(选项)(参数) 或 blockdev [options] commands devices

Linux下可以通过操作文件的方式来操作块设备,打开块设备后可以通过ioctl系统调用获取块设备的信息:
int ioctl(int fd,int request,unsigned long arg);

参数:
fd 文件描述符
request 传入的命令
arg 传入的参数,类型可变,长整形或者指针

选项
-V:查询版本号并退出;
-q:安静模式;
-v:详细信息模式;
--setro:设置设备为只读;
--setrw:设置设别为可读写;
--getro:查询只读状态,“1”表示只读,“0”表示非只读;
--getss:查询扇区大小,通常为512;
--getsize:查询设别的容量,按照一个扇区512个字节计算
--setra N 设置预读扇区(512字节)为N个(Set readahead to N 512-byte sectors.)
--getra 查询readahead(预读扇区)
--flushbufs:刷新缓冲区;
--rereadpt:重新读取分区表。

参数
设备文件名:指定要操作的磁盘的设备文件名。

实例
设置设备为只读:
blockdev --setro /dev/sda2

读取设备是否为只读:
blockdev --getro /dev/sda2

设置设别为可读写:
blockdev --setrw /dev/sda2

--------------------------------------------



该文章最后由 阿炯 于 2022-09-10 16:14:59 更新,目前是第 2 版。