您的位置:首页 > 运维架构 > Linux

Linux 创建文件系统及挂载文件系统详解三

2007-03-25 01:22 826 查看
2、通过/etc/fstab文件来开机自动挂载文件系统
1)理解fstab

[align=left]上面我们说了mount挂载存储设备文件系统的办法;现在我们再来说一说在/etc/fstab 中实现开机自动挂载文件系统的办法;首先我们要查看 /etc/fstab ;主要看他的规划写法;[/align]
[align=left]# 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[/align]
[align=left]第一字段:设备名[/b],在这里表示是文件系统; 有时我们把挂载文件系统也说成挂载分区; 在这个字段中也可以用分区标签[/b];在例子中/LABEL=/1就是linux系统安装分区的标签,至于是在哪个分区,可以用 df -lh 来查看;[/align]
[align=left][root@localhost]# 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[/align]
[align=left]我们可以知道 LABEL=/1是/dev/hda8的标签;那我们用什么命令来创建硬盘分区的标签呢?[/align]
[align=left]对于ext3和ext2文件系统,我们可以用 e2label 来设置[/align]
[align=left]e2label device [newlabel] [/b]创建设备的标签命令[/b][/b][/align]
[align=left]比如我们想把文件系统为ext3 的分区/dev/hda5的标签设备为 /5 ,我们应该执行如下的命令:[/align]
[align=left][root@localhost]# e2label /dev/hda5 /5
[root@localhost]# mkdir /mnt/hda5 注:创建挂载/dev/hda5分区的目录;
[root@localhost]# chmod 777 /mnt/hda5 注:打开权限,所有用户可读可写可执行;[/align]
[align=left]然后我们要改/etc/fstab 中加一行[/align]
[align=left]/5 /mnt/hda5 ext3 defaults 0 0[/align]
[align=left]警告: 请不要在您的Linux的安装分区(也就是Linux系统/ 所在的分区)实践,会导致您的Linux系统崩溃;如果想实践,请在其它分区测试;[/align]
[align=left]如果是reiserfs文件系统,我们应该用 [/align]
[align=left][root@localhost]# reiserfstune -l 标签 设备 [/align]
[align=left]举例:比如我为reiserfs 文件系统 /dev/hda10设置标签为 /10 ;[/align]
[align=left][root@localhost]# reiserfstune -l /10 /dev/hda10[/align]
[align=left]我们在/etc/fstab中加入一行;[/align]
[align=left]/10 /mnt/hda10 reiserfs defaults 0 0[/align]
[align=left]
警告: 请不要在您的Linux的安装分区(也就是Linux系统/ 所在的分区)实践,会导致您的Linux系统崩溃;如果想实践,请在其它分区测试; [/align]
[align=left]第二字段:文件系统的挂载点;[/b]
第三字段:文件系统类型;[/b]
第四字段:mount [/b]命令的选项[/b],和mount 中的-o 同理;defaults包括这些选项 rw, suid, dev, exec, auto, nouser, async;通过实践,这个默认的还能满足我们的需要;[/align]
[align=left]第五字段:表示文件系统是否需要[/b]dump [/b]备份,是真假关系;[/b]1[/b]是需要,[/b]0 [/b]是不需要;[/b]
第六字段: [/b]是否在系统启动时,通过[/b]fsck[/b]磁盘检测工具来检查文件系统,[/b]1[/b]是需要,[/b]0[/b]是不需要,[/b]2[/b]是跳过;[/b][/b][/align]
[align=left]基于这些认识;比如我们要开机自动挂载/dev/hda5 ;我们可以如下做;[/align]
[align=left][root@localhost]# mkdir /mnt/hda5/ 注:先创建一个挂载目录;
[root@localhost]# chmod 777 /mnt/hda5/ 注:设置/mnt/hda5的权限为任何用户可写可读可执行;这样所有的用户都能在写入;[/align]
[align=left]然后我们在/etc/fstab 中加如下的一行;[/align]
[align=left]/dev/hda5 /mnt/hda5 reiserfs defaults 0 0[/align]
[align=left]这样重启机器就能看到效果了;[/align]
[align=left]四、对文件系统进行扫描fsck[/align]
[align=left]类似于Windows中的scandisk,在Linux中就有类似这样的工具fsck,不过fsck 可不仅仅是扫描,还能修正文件系统的一些问题。值得注意的是[/b]fsck [/b]扫描文件系统时一定要在单用户模式、修复模式或把设备[/b]umount[/b]后进行。[/b][/b][/align]
[align=left]警告:如果扫描正在运行中的系统,会造成系统文件损坏;如果您的系统是正常,请不要用扫描工具,她可能会把您的系统搞坏掉,fsck运行是有危险的;[/align]
[align=left]文件系统扫描工具有 fsck fsck.ext2 fsck.jfs fsck.msdos fsck.vfat fsck.ext3 fsck.reiserfs(reiserfsck)[/align]
[align=left]其中fsck 默认支持文件系统ext2,如果想支持ext3文件系统的扫描,应该加-j 参数,最好是我们应该根据不同的文件系统来调用不同的扫描工具,比如 fsck.ext2,fsck.jfs,fsck.msdos,fsck.ext3,fsck.reiserfs(reiserfsck)等。我们也可以根据自己的文件系统选择不同的扫描工具;[/align]
[align=left]举例:扫描/dev/hda10分区(基于reiserfs文件系统 );[/align]
[align=left][root@localhost]# 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 [email]reiserfs-list@namesys.com[/email], **
** 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
###########[/align]
[align=left]对于fsck.ext2和fsck.ext3常用的几个选项:[/align]
[align=left]-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 注:不对文件系统做任何改变,只要扫描,以检测是否有问题;[/align]
[align=left]举例:比如 /dev/hda6 (文件系统是ext3的),我想扫描并自动修复;[/align]
[align=left][root@localhost]# fsck.ext3 -p /dev/hda6[/align]
[align=left]注意: 针对不同文件系统,最好用相应的工具;虽然有时fsck 在不加参数的情况下能识别不同的文件系统;[/align]
[align=left]对于不同工具的最为详细的参数,请参看--help或者man;[/align]
[align=left]补充:[/b]Fedora Core 4.0 默认安装不支持创建reiserfs 文件系统,解决办法是安装reiserfs-utils ,这也是需要的;[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息