Linux 磁盘格式化、检验、挂载
分区完毕之后自然要进行文件系统的格式化。格式化命令mkfs(make file system)这个命令。这是个综合命令,它会去调用正确的文件系统格式化工具软件。
磁盘格式化
mkfs
mke2fs
mke2fs是一个很详细但是很麻烦的命令,因为设置太多:
- 这个文件系统的卷标设置为:vbird_logical
- 我的block指定为2048大小
- 每8192bytes分配一个inode
- 构建为journal的Ext3文件系统
格式化/dev/hdc6结果如下:
磁盘检验
我们知道文件系统运行时会有硬件与内存数据异步的状况发生,因此突然死机非常可能导致文件系统的错乱。如果文件系统真的发生错乱的呼,该如何挽救呢
fsck(file system check)
这是用来检查与修正文件系统错误的命令。通常只有身为root且你的文件系统有问题的时候才使用这个命令,否则在正常状况下使用此命令
可能造成对系统的危害,使用该命令的场合都是系统出现极大的问题导致在linux开机时候得进入单用户模式下进行维护的时候,才必须使用此命令。
如果你怀疑刚格式化成功的硬盘有问题时,可使用fsck来检查硬盘。fsck在扫描硬盘的时候,可能会造成部分文件系统损坏,所以执行fsck时,被检查
的分区务必不可挂载到系统上。即使在卸载的状态。
ext2/ext3文件系统的最顶层(就是挂载那个目录下面)会存在一个“lost+found”的目录。该目录就是在当你使用fsck检查文件系统后,若出现问题,问题
数据被放到这个目录中。所以正常状况下这个目录不应该有任何数据,若系统自动产生数据在里面,那你就特别注意你的文件系统了。
badblocks
fsck是用来检验文件系统是否出错,badblock是用来检查磁盘或者软盘有没有坏轨的命令。由于这个命令其实可以通过“mke2fs -c 设备文件名”在格式化的时候处
理磁盘表面的读取测试,因此目前大多数不使用这个命令。
磁盘挂载
挂载点是目录,这个目录是进入磁盘分区(文件系统)的入口。进行挂载前,先确认几件事情:
- 单一文件系统不应该被重复挂载在不同的挂载点(目录)中
- 单一目录不应该重复挂载多个文件系统
- 作为挂载点的目录理论上应该是空目录
如果要用来挂载的目录不是空的,那么挂载了文件系统之后,原来目录下的东西暂时消失被隐藏起来,不是被覆盖掉,等到新的分区被卸载之后,原来的内容显示出来。
mount命令,将文件系统挂载到linux系统上
挂载ext2/ext3文件系统
利用“mount设备文件名挂载点”就能够顺利挂载了。Linux可以通过分析super block搭配Linux自己的驱动程序去测试挂载,如果挂载成功就立刻
自动使用该类型的文件系统挂载起立。系统参考以下两个文件来指定哪些类型文件系统才需要进行上述的挂载测试:
/etc/filesystems:系统指定的测试挂载关文件系统类型;
/proc/filesystems:Linux系统已经加载的文件类型。
系统支持的文件系统的驱动程序写在如下的目录中:/lib/modules/$(uname -r)/kernel/fs/
挂载CD或DVD光盘
光盘一旦挂载之后就无法退出光盘,除非你将它卸载才能够退出。从上面的数据可以发现,因为是光盘,所以磁盘使用率达到100%,
因此无法直接写入任何数据到光盘中。另外,/dev/cdrom是个连接文件,正确的磁盘文件名得要看你的光驱是什么连接接口的环境。
格式化与挂载软盘
软盘的格式化可以直接使用mkfs。但是软盘也可以格式化为ext3或者vfat格式。挂载的时候我们同样会用系统的自动测试挂载即可。先将软盘
放到软盘驱动器中:
与光驱不同的是,你挂载了软盘后竟然还是可以退出软盘。不过,如此一来你的文件系统将会有莫名其妙的问题发生,整个linux最重要的
就是文件系统,而文件系统是直接挂载到目录树上头,几乎任何命令都会或多或少使用到目录树的数据,因此你当然不可以随意将光盘/软盘
拿出来。所以,软盘也请卸载之后再推出
挂载U盘
U盘插入Linux主机的USB接口中,注意,U盘不能是NTFS的文件系统:
如果带有中文文件名的数据,那么可以在挂载时指定一下挂载文件系统所使用的语言。在man mount找到vfat文件格式当中可以使用iocharset来指定
语系,中文语系是cp950。如果U盘使用了NTFS系统,则需要下载驱动程序安装之后就可以使用了。
磁盘卸载
umount(将设备文件卸载)
直接将已挂载的文件卸载即是,卸载之后,可以使用df或者mount -l看看是否还存在目录数中。
如果你遇到这样的情况:
说明你正在使用这个文件系统。所以无法卸载,离开这个文件挂载点即可。
使用Label name进行挂载的方法
除了磁盘的设备名之外,其实我们可以使用系统的卷标(label)名称来挂载。
这种挂载的方法有一个很大的好处:系统不必知道该文件系统所在的接口与磁盘文件名。
磁盘参数修改
mknod
在Linux下面所有的设备都以文件来代表,但是那个文件如何代表该设备呢?是通过文件的major与minor数值来替代。所以major与minor是有特殊意义的。
上面22位主设备代买(Magor),而0~6则为设备代码(Minor)。我们的linu认识的设备数据就是通过这两个数值来决定的。如表:
基本上,linux2.6版本以后,硬件文件名已经都可以被系统自动产生了,不需要手动创建设备文件。不过某些情况下我们还是要手动处理设备文件,例如在
某些服务被放到特定目录侠士,就需要这么做了。此时这个mknod就是要知道如何操作:
e2label
e2label用来修改卷标,什么事卷标Label呢,就是当你打开资源管理器事,C/D盘不是有名称吗?那就是label(如果没有设置名称就会显示“本机磁盘驱动器”)
tune2fs
如果你的某个分区是ext2文件系统,如果想更新成ext3文件系统,用tune2fs很简单地转换过来。不过这个命令功能很广泛,进列出简单的参数,可以用man tune2fs 了解更多