Linux文件系统管理-自动挂载与fstab文件修复/swap分区


Linux文件系统管理-自动挂载与fstab文件修复/swap分区


以前讲的挂载开机重启后就会消失,所以要编辑fstab这个文件,这里面是系统启动的时候自动挂载的分区:

Linux文件系统管理-自动挂载与fstab文件修复/swap分区

这个文件里面能改的其实就是标亮的那4个。下面的是临时和内存挂载点,不能直接操作。

最后的那个一般都要比根目录的级别低,所以一般是  2  。


之所以能自动挂载其实就是写入这个文件:

Linux文件系统管理-自动挂载与fstab文件修复/swap分区

这个文件容易改错,当出错的时候可以用下面的fstab进行修复。


当分区的顺序颠倒时,比如重新编译内核、添加新硬盘等;系统还会按照之前的顺序读取分区号,这样就容易出现问题或者系统崩溃。

这个时候  UUID  就是唯一识别每个分区的标示,有了它就可以随便改分区号了,通过查  UUID 就能查到一切信息,包括改了分区号的信息。

查看UUID的命令:

Linux文件系统管理-自动挂载与fstab文件修复/swap分区这是每个分区的唯一识别码。

内容比较多,找到这行就是了

Linux文件系统管理-自动挂载与fstab文件修复/swap分区

这个ID格式化和删除的时候会改变。

lost+found是目录的备份。是分区的目录才可以,就是挂载的。


把设备写到这个文件里就可以了。

这个文件万一有点改错的地方系统就起不来或者崩溃。所以先自动挂载试试看



Linux文件系统管理-自动挂载与fstab文件修复/swap分区

加入这么一行就可以自动挂载了:

Linux文件系统管理-自动挂载与fstab文件修复/swap分区


改完后需要重启才能生效,为了不重启可以用下面的命令:

Linux文件系统管理-自动挂载与fstab文件修复/swap分区

没有内容就OK了。


如果这个文件写错了,在重启进入的时候会报错,但输入密码依然可以进入系统。不过这个时候这个文件是不可更改的,因为在挂载的时候挂载成了只读文件,

所以,用下面的命令重新挂载成可读写文件:

Linux文件系统管理-自动挂载与fstab文件修复/swap分区

前提是根目录的挂载并没有被改坏,就是最上面的标亮的第一条那个记录,否则这个修复都是做不了的。

二、swap交换分区

Linux文件系统管理-自动挂载与fstab文件修复/swap分区


下面的1~6是扩展 swap 分区的步骤:

查看内存和swap分区的情况:

可以用free -m用M字节来表示。

Linux文件系统管理-自动挂载与fstab文件修复/swap分区

Linux文件系统管理-自动挂载与fstab文件修复/swap分区

  在安装Linux的时候,不知道swap空间分配多少比较好,所以会随便分配一个,在真正使用的时候,比如安装Oracle10g会要求很大的swap空间,发现swap空间不够,那应该怎么增加swap空间大小呢。

        以下的操作都要在root用户下进行,首先先建立一个分区,采用dd命令比如

Linux文件系统管理-自动挂载与fstab文件修复/swap分区dd if=/dev/zero of=/home/swap bs=1024 count=512000

这样就会创建/home/swap这么一个分区文件。文件的大小是512000个block,一般情况下1个block为1K,所以这里空间是512M。接着再把这个分区变成swap分区。

Linux文件系统管理-自动挂载与fstab文件修复/swap分区/sbin/mkswap /home/swap

再接着使用这个swap分区。使其成为有效状态。

Linux文件系统管理-自动挂载与fstab文件修复/swap分区/sbin/swapon /home/swap

现在再用free -m命令查看一下内存和swap分区大小,就发现增加了512M的空间了。不过当计算机重启了以后,发现swap还是原来那么大,新的swap没有自动启动,还要手动启动。那我们需要修改/etc/fstab文件,增加如下一行

Linux文件系统管理-自动挂载与fstab文件修复/swap分区/home/swap              swap                    swap    defaults        0       0
你就会发现你的机器自动启动以后swap空间也增大了。



扩展阅读(来自百度百科):
   需要说明一点,并不是所有从物理内存中交换出来的数据都会被放到Swap中(如果这样的话,Swap就会不堪重负),有相当一部分数据被直接交换到文件系统。例如,有的程序会打开一些文件,对文件进行读写(其实每个程序都至少要打开一个文件,那就是运行程序本身),当需要将这些程序的内存空间交换出去时,就没有必要将文件部分的数据放到Swap空间中了,而可以直接将其放到文件里去。如果是读文件操作,那么内存数据被直接释放,不需要交换出来,因为下次需要时,可直接从文件系统恢复;如果是写文件,只需要将变化的数据保存到文件中,以便恢复。但是那些用malloc和new函数生成的对象的数据则不同,它们需要Swap空间,因为它们在文件系统中没有相应的“储备”文件,因此被称作“匿名”(Anonymous)内存数据。这类数据还包括堆栈中的一些状态和变量数据等。所以说,Swap空间是“匿名”数据的交换空间。


参考资料:

http://blog.csdn.net/wangfei8348/article/details/47761003

http://blog.sina.com.cn/s/blog_6aad8abe01019gqm.html

http://blog.csdn.net/chinalinuxzend/article/details/1759593