6分区与文件系统.docx
《6分区与文件系统.docx》由会员分享,可在线阅读,更多相关《6分区与文件系统.docx(7页珍藏版)》请在冰豆网上搜索。
6分区与文件系统
分区与文件系统
一,Linux支持的文件系统
Linux系统核心可以支持十多种文件系统类型:
JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。
二,Linux常用的文件系统
1.ext
ext是第一个专门为开发的Linux的文件系统类型,叫做扩展文件系统。
它是1992年4月完成的,对Linux早期的发展产生了重要作用。
但是,由于其在稳定性、速度和兼容性上存在许多缺陷,现在已经很少使用了。
2.ext2
ext2是为解决ext文件系统的缺陷而设计的可扩展的、高性能的文件系统,它又被称为二级扩展文件系统。
ext2是1993年发布的,设计者是ReyCard。
它是Linux文件系统类型中使用最多的格式由于它的设计者主要考虑的是文件系统性能方面的问题,而在写入文件内容的同时,并没有写入文件的meta-data(和文件有关的信息,例如权限、所有者及创建和访问时间)。
换句话说,Linux先写入文件的内容,然后等到有空的时候才写入文件的meta-data。
如果出现写入文件内容之后,但在写入文件的meta-data之前系统突然断电,就可能造成文件系统就会处于不一致的状态。
在一个有大量文件操作的系统中,出现这种情况会导致很严重的后果。
3.ext3
ext3是由开放资源社区开发的日志文件系统,早期主要开发人员是StephenTweedie。
ext3被设计成是ext2的升级版本,尽可能方便用户从ext2向ext3迁移。
ext3在ext2的基础上加入了记录元数据的日志功能,努力保持向前和向后的兼容性
4.jfs
JFS是一种提供日志的字节级文件系统。
该文件系统主要是为满足服务器(从单处理器系统到高级多处理器和群集系统)的高吞吐量和可靠性需求而设计、开发的。
JFS文件系统是为面向事务的高性能系统而开发的。
JFS能够在几秒或几分钟内就把文件系统恢复到一致状态。
在系统崩溃时JFS能提供快速文件系统重启时间,所以它是因特网文件服务器的关键技术。
使用数据库日志处理技术,JFS能在几秒或几分钟之内把文件系统恢复到一致状态。
而在非日志文件系统中,文件恢复可能花费几小时或几天。
5.ReiserFS
ReiserFS的第一次公开亮相是在1997年7月23日,HansReiser把他的基于平衡树结构的ReiserFS文件系统在网上公布。
ReiserFS3.6.x(作为Linux2.4一部分的版本)ReiserFS使用了特殊的、优化的平衡树(每个文件系统一个)来组织所有的文件系统数据,这为其自身提供了非常不错的性能改进,也能够减轻文件系统设计上的人为约束。
另一个使用平衡树的好处就是,ReiserFS能够像其它大多数的下一代文件系统一样,根据需要动态地分配索引节,而不必在文件系统创建时建立固定的索引节。
这有助于文件系统更灵活地适应面临的各种存储需要,同时提供附加的空间有效率。
6.XFS
XFS是一种非常优秀的日志文件系统,它是由SGI于20世纪90年代初开发的。
XFS推出后被业界称为先进的、最具可升级性的文件系统技术。
它是一个全64位、快速、稳固的日志文件系统
7.一些其它文件系统。
∙Minix是Linux支持的第一个文件系统,对用户有很多限制,性能低下,有些没有时间标记,文件名最长l4个字符。
Minix文件系统最大缺点是只能使用64MB的硬盘分区,所以目前已经没有人使用它了。
∙Xia是Minix文件系统修正后的版本,在一定程度上解决了文件名和文件系统大小的局限。
但是没有新的特色,目前很少有人使用。
∙ISO9660标准CDROM文件系统,通用的RockRidge增强系统,允许长文件名。
∙NFSSun公司推出的网络文件系统,允许多台计算机之间共享同一文件系统,易于从所有这些计算机上存取文件。
∙SysV是SystemV/Coherent在Linux平台上的文件系统。
除了上面这些Linux文件系统外,Linux也可以支持基于Windows和Netware的文件系统,例如UMSDOS、MSDOS、VFAT、HPFS、SMB和NCPFS等。
兼容这些文件系统对Linux用户也是很重要的,毕竟在桌面环境下Windows文件系统还是很流行的,而Netware网络也有许多用户,Linux用户也需要共享这些文件系统的数据。
∙UMSDOSLinux下的扩展MSDOS文件系统驱动,支持长文件名、所有者、允许权限、连接和设备文件。
允许一个普通的MSDOS文件系统用于Linux,而且无须为它建立单独的分区。
∙MSDOS是在DOS、Windows和某些OS/2操作系统上使用的一种文件系统,其名称采用“8+3”的形式,即8个字符的文件名加上3个字符的扩展名。
∙VFAT是Windows9x和WindowsNT/2000下使用的一种DOS文件系统,其在DOS文件系统的基础上增加了对长文件名的支持。
∙HPFT高性能文件系统(HighPerformanceFileSystem,HPFS)是微软的LANManager中的文件系统,同时也是IBM的LANServer和OS/2的文件系统。
HPFT能访问较大的硬盘驱动器,提供了更多的组织特性,并改善了文件系统的安全特性。
∙SMB是一种支持WindowsforWorkgroups、WindowsNT和LanManager的基于SMB协议的网络操作系统。
∙NCPFS是一种NovellNetWare使用的NCP协议的网络操作系统。
∙NTFS是WindowsNT/2000操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式。
二,日志文件系统
日志式文件系统起源于Oracle、Sybase等大型数据库。
由于数据库操作往往是由多个相关的、相互依赖的子操作组成,任何一个子操作的失败都意味着整个操作的无效性,对数据库数据的任何修改都要恢复到操作以前的状态。
Linux日志式文件系统就是由此发展而来的。
日志文件系统通过增加一个叫做日志的、新的数据结构来解决这个“fsck”问题。
这个日志是位于磁盘上的结构。
在对元数据做任何改变以前,文件系统驱动程序会向日志中写入一个条目,这个条目描述了它将要做些什么,所以日志文件具有可伸缩性和健壮性。
在分区中保存日志记录文件好处是:
文件系统写操作首先是对记录文件进行操作,若整个写操作由于某种原因(如系统掉电)而中断,则在下次系统启动时就会读日志记录文件的内容,恢复到没有完成的写操作,这个过程一般只需要两三分钟时间。
三,Linux下分区的工具
在安装过程中我们会使用具有图形界面的分区工具,而在系统使用中通常使用fidskparted两具CIL命令来完成.
1.fdisk
#fdisk/dev/?
?
?
//操作指定的设备或者分区
#fdisk–l//显示所有硬盘信息
进入fdisk后的命令,全以字母表示
1.输入m显示所有命令列示。
2.输入p显示硬盘分割情形。
3.输入a设定硬盘启动区。
4.输入n设定新的硬盘分割区。
4.1.输入e硬盘为[延伸]分割区(extend)。
4.2.输入p硬盘为[主要]分割区(primary)。
5.输入t改变硬盘分割区属性。
6.输入d删除硬盘分割区属性。
7.输入q结束不存入硬盘分割区属性。
8.输入w结束并写入硬盘分割区属性。
2.分区,改变分区类型
2.parted
命令
描述
checkminor-num
执行文件系统的简单检查
cpfromto
把文件系统从一个分区复制到另一个分区;from和to是分区的次要号码
help
显示可用的命令列表
mklabellabel
为分区表创建磁盘标签
mkfsminor-numfile-system-type
创建类型为file-system-type的文件系统
mkpartpart-typefs-typestart-mbend-mb
不创建新文件系统而制作分区
mkpartfspart-typefs-typestart-mbend-mb
制作分区并创建指定的文件系统
moveminor-numstart-mbend-mb
移动分区
print
显示分区表
quit
Quitparted
resizeminor-numstart-mbend-mb
重新划分分区大小,从start-mb到end-mb
rmminor-num
删除分区
selectdevice
选择另一个设备来配置
setminor-numflagstate
在分区上设置标志;state要么是on,要么是off
Parted实例:
#parted/dev/sdb//设/dev/sdb硬盘未分区
(parted)p//查看状态,未分区
(parted)mkpartprimaryext30100//建立主分区并指定文件系统为ext3大小从100M,完成后
(parted)mkpartprimary100200//只建分区不指定文件系统,由以后的mkfs命令指定ext3.
(parted)mkpartfs//交互式分区,并建立文件系统,不支持ext3.
(parted)mkfs3ext2//将序号为3的分区改变为ext3格式.
(parted)cp34//将标识为3的分区文件系统复制给标识为4的分区.
(parted)rm0//删除一个分区,以标识号来选择
(parted)select/dev/sdb1//选择一个要操作的设备.
(parted)resize4500600//改变标识为4的分区大小.
四,建立文件系统
分区之后根据需要建立文件系统.
建立文件系统的命令
命令1
命令2
命令3
说明
mkfs.ext3
mkfs.ext2
mke2fs
建立ext3文件系统
mkfs.vat
mkfs.msdos
Mkdosfs
建立fat文件系统
mkfs.reiserfs
建立reiser文件系统
mkfs.jfs
建立jfs文件系统
mkswap
建立swap文件系统
注:
考虑各Linux版本兼容性,建立同一文件系统可能使用不同命令名,但其实是一个文件.
1.建立ext2文件系统
建立分区之后使用(也可在建立分区之时指定文件系统)
#mke2fs/dev/sdb1(分区设备文件名)
(parted)mkpartfs//使用交互式的方式新建分区并指定文件类型.parted不支持ext3
2.修改分区卷标
#e2label/dev/sdb1/var/ftp//设备文件名+新的卷标
#e2label/dev/sdb1//仅仅查看卷标
3.findfsLABEL=/var/ftp//查找卷标为/var/ftp的文件系统
4.检测分区
#e2fsck/dev/sdb1//用于检测ext2/ext3文件系统并进行错误修复.
5.将ext2转换为
#tune2fs–j/dev/sdb1//将/dev/sdb1转换为ext3分区
以上命令执行完毕后,请确定把/etc/fstab文件中的ext2文件系统改成ext3文件系统。
如果你要转换根文件系统,你将需要使用一个initrd映像(或RAM磁盘)来引导。
要创建映像,运行mkinitrd程序。
关于使用mkinitrd命令的信息,请键入manmkinitrd。
还请确定你的GRUB或LILO配置会载入initrd。
如果更改没有成功,系统仍旧能够引导,只不过文件系统将会被挂载为ext2而不是ext3。
6.建立ext3分区
#mkfs–text3/dev/sdb3//在分区//dev/sdb3上建立ext3文件系统.
五,fstab文件
文件/etc/fstab存放的是系统中的文件系统信息。
当正确的设置了该文件,则可以通过"mount/directoryname"命令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。
同时fsck、mount、umount的等命令都利用该程序。
基本格式:
fs_specfs_filefs_typefs_optionsfs_dumpfs_pass
示例:
/dev/hda1/ext2defaults11
1.fs_spec-该字段定义希望加载的文件系统所在的设备或远程文件系统,对于一般的本地块设备情况来说:
IDE设备一般描述为/dev/hdaXN,X是IDE设备通道(a,b,orc),N代表分区号;SCSI设备一描述为/dev/sdaXN。
对于NFS情况,格式一般为:
例:
`knuth.aeb.nl:
/'。
对于procfs,使用`proc'来定义。
2.fs_file-该字段描述希望的文件系统加载的目录点,对于swap设备,该字段为none;对于加载目录名包含空格的情况,用40来表示空格。
3.fs_type-定义了该设备上的文件系统,一般常见的文件类型为ext2(Linux设备的常用文件类型)、vfat(Windows系统的fat32格式)、NTFS、iso9600等。
4.codepage国家语言代码页
5.iocharset字符集
6.fs_options-指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。
对于大多数系统使用"defaults"就可以满足需要。
其他常见的选项包括:
选项含义
ro以只读模式加载该文件系统
sync不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破坏文件系统,但是却降低了计算机速度
user允许普通用户加载该文件系统
quota强制在该文件系统上进行磁盘定额限制
noauto不再使用mount-a命令(例如系统启动时)加载该文件系统
7.fs_dump-该选项被"dump"命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设置该字段为0
8.fs_pass-该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统"/"对应该字段的值应该为1,其他文件系统应该为2。
若该文件系统无需在启动时扫描则设置该字段为0
示例文件:
#/etc/fstab
/dev/hda8swapswapdefaults00
/dev/hda9/ext2defaults11
/dev/hda6/winevfatdefaults,codepage=936,iocharset=cp93600
/dev/hda7/winfvfatdefaults,codepage=936,iocharset=cp93600
/dev/hdb/cdromiso9660noauto,user00
none/procprocdefaults00
none/dev/ptsdevptsgid=5,mode=62000