linux fstab解读

fstab这个文件挺有用的。

从左到右:

/dev/device mount-point type rules dump fsck

1. /dev/device: 不用说了吧?例如,/dev/hda1M$-Win9x下的c:盘。

2. mount-point: 挂载点。例如,把/dev/hda1挂到/mnt/mywinc下。

3. type: ext3, vfat, ......就是要挂上的文件系统类型。

4. rules:

auto: 开机自动挂接;

default, noauto: 开机不自动挂接;

nouser: 只有root可挂;

ro: 只读挂接;

rw: 可读可写挂接;

user: 任何用户都可以挂接;

5. dump: 备份;0为从不备份,或显示上次至今备份之天数;

6. fsck: 启动时fsck检查顺序,0为不检查, “/”永远为1;

我的就是:

/dev/hda1 /mnt/mywinc vfat default 0 0


fstab中加载分区


mkdir /mnt/win_c

vi /etc/fstab

:::::add:::::

/dev/hda1 /mnt/win_c vfat default,pagecode=936,iocharset=cp936 0 0




1. fstab文件的作用

文件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过"mount /directoryname"命令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。同时fsck mountumount的等命令都利用该程序。

2. fstab文件格式

下面是/etc/fatab文件的一个示例行:

fs_spec fs_file fs_type fs_options fs_dump fs_pass

/dev/hda1 / ext2 defaults 1 1

fs_spec - 该字段定义希望加载的文件系统所在的设备或远程文件系统,对于一般的本地块设备情况来说:IDE设备一般描述为/dev/hdaXNXIDE设备通道 (a, b, or c)N代表分区号;SCSI设备一描述为/dev/sdaXN。对于NFS情况,格式一般为<host>:<dir>,例如: `knuth.aeb.nl:/'。对于procfs,使用`proc'来定义。

fs_file - 该字段描述希望的文件系统加载的目录点,对于swap设备,该字段为none;对于加载目录名包含空格的情况,用40来表示空格。

fs_type - 定义了该设备上的文件系统,一般常见的文件类型为ext2 (linux设备的常用文件类型)vfat(Windows系统的fat32格式)NTFSiso9600等。

fs_options - 指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。对于大多数系统使用"defaults"就可以满足需要。其他常见的选项包括:

选项 含义

ro 以只读模式加载该文件系统

sync 不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破坏文件系统,但是却降低了计算机速度

user 允许普通用户加载该文件系统

quota 强制在该文件系统上进行磁盘定额限制

noauto 不再使用mounta命令(例如系统启动时)加载该文件系统

fs_dump - 该选项被"dump"命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设置该字段为0

fs_pass - 该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统"/"对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0

3. 示例文件

# /etc/fstab

/dev/hda9 swap swap defaults 0 0

/dev/hda1 / ext2 defaults 1 1

/dev/hda5 /home ext2 defaults 1 1

/dev/hda6 /usr ext2 defaults 1 1

/dev/hda7 /usr/local ext2 defaults 1 1

/dev/hda8 /var ext2 defaults 1 1

/dev/hdb /cdrom iso9660 noauto,user 0 0

none /proc proc defaults 0 0

none /dev/pts devpts gid=5,mode=620 0 0







Linux fstab自动挂载分区教程

 

    某些时候当Linux系统下划分了新的分区后,需要将这些分区设置为开机自动挂载,否则,Linux是无法使用新建的分区的。 /etc/fstab 文件负责配置Linux开机时自动挂载的分区。

Windows的文件结构是多个并列的树状结构,最顶部的是不同的磁盘(分区),如:CDEF等。Linux的文件结构是单个的树状结构。最顶部的为根目录,即/。在根目录下,分为多个子目录,包括/bin/boot/dev/etc/home/lib/media/mnt/opt/proc/root/sbin/tmp/usr/var等。

磁盘Linux分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作,而fstab正是负责这一配置。显然,根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。上面还提到,Linux分区交换也需要独立使用一个分区,因此,安装一个Linux至少需要两个分区。(事实上,只使用一个分区安装Linux也是可能的,而且,如果电脑的物理内存足够大,交换分区并不是必须的)

本文将以某一典型的debian系统为例。打开 /etc/fstab文件

1[root@www ~]# vi /etc/fstab

默认情况下,fstab中已经有了当前的分区配置,内容可能类似:

# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/hda1 / ext3 errors=remount-ro 0 1
/swapfile swap swap defaults 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0

由上面的内容可以看出,系统的 /dev/hda1 分区被挂载在根目录,文件系统是ext3。此外,还有procswap等特殊的分区,与 /dev/hdc 被作为光驱挂载在了 /media/cdrom0

因此,如果希望将新分区 /dev/hda5 挂载在 /home/new 目录下,则只需在fstab文件中加入一行:

/dev/hda5 /home/new ext3 default 0 1

即可。

第一列可以是实际分区名,也可以是实际分区的卷标(Lable)。

如果磁盘是SATA接口,且有多个磁盘,则每个磁盘被标记为 /dev/hda /dev/hdb /dev/hdc等以此类推;而每个磁盘的分区被标记为 /dev/hda1 /dev/hda2等。

如果磁盘是SCSI类型,则多个磁盘会被分别标记为 /dev/sda/dev/sdb等等。分区同理。

如果使用标签来表示,则格式如:

1LABLE=/

第二列是挂载点。

挂载点必须为当前已经存在的目录,为了兼容起见,最好在创建需要挂载的目标目录后,将其权限设置为777,以开放所有权限。

第三列为此分区的文件系统类型。

Linux可以使用ext2ext3等类型,此字段须与分区格式化时使用的类型相同。也可以使用 auto 这一特殊的语法,使系统自动侦测目标分区的分区类型。auto通常用于可移动设备的挂载。

第四列是挂载的选项,用于设置挂载的参数。

常见参数如下:

auto: 系统自动挂载,fstab默认就是这个选项
defaults: rw, suid, dev, exec, auto, nouser, and async.
noauto 开机不自动挂载
nouser 只有超级用户可以挂载
ro 按只读权限挂载
rw 按可读可写权限挂载
user 任何用户都可以挂载
请注意光驱和软驱只有在装有介质时才可以进行挂载,因此它是noauto

第五列是dump备份设置。

当其值设置为1时,将允许dump备份程序备份;设置为0时,忽略备份操作;

第六列是fsck磁盘检查设置。

其值是一个顺序。当其值为0时,永远不检查;而 /根目录分区永远都为1。其它分区从2开始,数字越小越先检查,如果两个分区的数字相同,则同时检查。

当修改完此文件并保存后,重启服务器生效。





etc配置文件解读——fstab 

分类: 嵌入式etc配置文件解读2012-07-17 11:40 1269人阅读 评论(0) 收藏 举报

linux内核redhatubuntu工具userc


PC主机:Ubuntu redhat 9.0

目标板:TQ2440开发板 cpu:s3c2440 linux内核:2.6.30

下文中所输入的命令就是在开发板中执行。

1. fstab的作用

    fstab包含了需要挂载的设备,相应的挂载点,以及属性等。在两种情况下,fstab中的内容将被读取。

    1 当执行mount -a的时候,fstab配置文件中的所有条目将被一一执行。

    2 fstab配置文件中的内容将作为默认的配置,也就是说当mount命令只知道挂载设备或者是挂载点时,它将搜索fstab文件。,比如,执行mount  /tmpfs的时候,此时我并没有给出需要挂载的设备,仅给出了挂载点,但是mount命令会首先查询fstab,如果查找到/tmpfs,将使用该默认配置进行挂载。请看例子:


[cpp] view plaincopy


  1. [root@yj423 /root]#cat /etc/fstab | grep /tmp   
  2. tmpfs /tmp tmpfs defaults 0 0   
  3. [root@yj423 /root]#mount /tmp   
  4. [root@yj423 /root]#mount | grep /tmp   
  5. tmpfs on /tmp type tmpfs (rw,relatime)  


但是如果我们把fstab/tmp所在的该行删除,则会


[cpp] view plaincopy


  1. <span style="font-size:12px;">[root@yj423 /root]#mount /tmp  
  2. mount: can't find /tmp in /etc/fstab</span>  



2. fstab语法

首先,先来看下完整的fstab内容


[cpp] view plaincopy


  1. [root@yj423 /root]#cat /etc/fstab   
  2. <filesystem>   <mountpoing> <type>  <options> <dump> <pass>  
  3. proc            /proc        proc    defaults    0   0  
  4. tmpfs           /tmp         tmpfs   defaults    0   0  
  5. sysfs           /sys         sysfs   defaults    0   0  
  6. tmpfs           /dev         tmpfs   defaults    0   0  
  7. var             /dev         tmpfs   defaults    0   0  
  8. ramfs           /dev         ramfs   defaults    0   0  


第一列filesystemmount命令所挂载的设备。


第二列mount pointmount命令的挂载点。挂载点必须是一个已存在的目录。


第三列type为文件系统的类型。


第四列optionmount命令的选项。


这里的defaults表示:rw, suid, dev, exec, auto, nouser, and async


rw表示文件系统可以读写。


suid表示当前用户权限和创建该文件的用户权限一样。


dev表示识别文件系统中的字符设备和块设备。与其对应的是nodev


exec表示可以在设备上运行二进制文件。与其对应的是noexec


auto表示执行mount -a是会执行该条目。与其对应的是noauto


nosuer表示只有root才能挂载该设备。与其对应的是user


async表示对该设备的写入操作不会立刻写入设备,而在随后的某个时刻写入。与其对应的是sync


第五列dump表示是否使用dump备份该文件系统,如果是0dump将忽略该文件系统。大多数情况下该列都为0.


第六列pass表示fsck工具检查文件系统的顺序。0表示不使用fsck





 Linux下/etc/fstab文件详解 2010-03-01 11:01:47

分类: LINUX


/etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,可以用命令less /etc/fstab 来查看,如果要修改的话,则用命令 vi /etc/fstab 来修改。

       当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。下面我来介绍如何在此文件下填写信息。

   在这个文件下,我们要关注的是它的六个域,分别为:、、 、、、。下面将详细介绍这六个域的详细意义。

      1、。这里用来指定你要挂载的文件系统的设备名称或块信息,也可以是远程的文件系统。做过嵌入式linux开发的朋友都可能知道 mount 192.168.1.56:/home/nfs /mnt/nfs/ -o nolock (可以是其他IP)命令所代表的意义。它的任务是把IP192.168.1.56的远程主机上的/home/nfs/目录挂载到本机的/mnt/nfs /目录之下。如果要把它写进/etc/fstab文件中,file system这部分应填写为:/192.168.1.56:/home/nfs/

   如果想把本机上的某个设备(device)挂载上来,写法如:/dev/sda1/dev/hda2/dev/cdrom,其中,/dev/sda1 表示第一个串口硬盘的第一个分区,也可以是第一个SCSI硬盘的第一个分区,/dev/hda1表示第一个IDE硬盘的第一个分区,/dev/cdrom 表示光驱。

   此外,还可以label(卷标)UUIDUniversally Unique Identifier全局唯一标识符)来表示。用label表示之前,先要e2label创建卷标,如:e2label /dir_1 /dir_2,其意思是说用/dir_2来表示/dir_1的名称。然后,再在/etc/fstab下添加:LABEL=/dir_2 /dir_2    。重启后,系统就会将/dir_1挂载到/dir_2目录上。对于UUID,可以用vol_id -u /dev/sdax来获取。比如我想挂载第一块硬盘的第一个分区,先用命令vol_id -u /dev/sda11 来取得UUID,比如是:5dc08a62-3472-471b-9ef5-0a91e5e2c126,然后在这个域上填写: UUID=5dc08a62-3472-471b-9ef5-0a91e5e2c126,即可表示/dev/sda11Red Hat linux 一般会使用label,而Ubuntu linux 一般会用UUID

   2、。挂载点,也就是自己找一个或创建一个dir(目录),然后把文件系统挂到这个目录上,然后就可以从这个目录中访问要挂载文件系统。对于swap分区,这个域应该填写:none,表示没有挂载点。

       3、。这里用来指定文件系统的类型。下面的文件系统都是目前Linux所能支持的:adfsbefscifsext3 ext2extiso9660kafsminixmsdosvfatumsdosprocreiserfsswap squashfsnfshpfsncpfsntfsaffsufs

   4、。这里用来填写设置选项,各个选项用逗号隔开。由于选项非常多,而这里篇幅有限,所以不再作详细介绍,如需了解,请用 命令 man mount 来查看。但在这里有个非常重要的关键字需要了解一下:defaults,它代表包含了选项rw,suid,dev,exec,auto,nouser async

   5、。此处为1的话,表示要将整个里的内容备份;为0的话,表示不备份。现在很少用到dump这个工具,在这里一般选0

   6、。这里用来指定如何使用fsck来检查硬盘。如果这里填0,则不检查;挂载点为 / 的(即根分区),必须在这里填写1,其他的都不能填写1。如果有分区填写大于1的话,则在检查完根分区后,接着按填写的数字从小到大依次检查下去。同数字 的同时检查。比如第一和第二个分区填写2,第三和第四个分区填写3,则系统在检查完根分区后,接着同时检查第一和第二个分区,然后再同时检查第三和第四个 分区。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/383312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++实现字符串类的封装

MyString.h文件 #define _CRT_SECURE_NO_WARNINGS#pragma once#include<iostream>#include<string>using namespace std;class MyString{friend ostream & operator<<(ostream & cout, MyString & str);friend istream & operator>>(…

c++中的继承--1(引出,继承方式,继承的对象模型)

继承的引出 概念&#xff1a; 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特 性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。继承呈现了面向对象程序设计的层次结构…

Makefile经典教程(掌握这些足够)

makefile很重要 什么是makefile&#xff1f;或许很多Winodws的程序员都不知道这个东西&#xff0c;因为那些Windows的IDE都为你做了这个工作&#xff0c;但我觉得要作一个好的和professional的程序员&#xff0c;makefile还是要懂。这就好像现在有这么多的HTML的编辑器&#xf…

c++中的继承--2(继承中的析构函数和构造函数,继承中同名成员,继承中静态成员)

继承中的构造函数和析构函数 继承中的构造和析构顺序 子类创建对象时&#xff0c;先调用父类的构造&#xff0c;然后调用自身构造析构顺序与构造顺序相反子类不会继承父类的构造函数和析构函数如果父类中没有合适默认构造&#xff0c;那么子类可以利用初始化列表的方式显示的…

Linux锁机制和线程安全

锁机制是多线程编程中最常用的同步机制&#xff0c;用来对多线程间共享的临界区进行保护。 1. 互斥锁&#xff1a;pthread_mutex&#xff0c;属于sleep-waiting类型的锁 pthread_mutex_t *mutex; int pthread_mutex_int(mutex, attr) //以动态方式创建互斥锁&#xff0c;参…

c++中的继承--3(多继承问题,菱形继承)

继承中的多继承 #include<iostream>using namespace std;class Base1 { public:Base1(){m_A 10;} public:int m_A;};class Base2 { public:Base2(){m_A 10;} public:int m_B;int m_A;};class Son :public Base1, public Base2 {public:int m_C;int m_D; };void test01…

c++中的多态---1(多态概念,静态联编和动态联编,多态原理解析,重载,重写,重定义的对比)

多态的基本概念 多态是面向对象设计语言数据抽象和继承之外的第三个基本特征多态性(polymorphism)提供接口与具体实现之间的另一层隔膜&#xff0c;从而将“what”和“how”分离开来&#xff0c;多态性改善了代码的可读和组织性&#xff0c;同时也使创建的程序具有可扩展性&am…

Ubuntu下各种服务搭建及操作技巧

Ubuntu下搭建TFTP 1、安装软件包 sudo apt-get install tftpd tftp xinetd 2、建立配置文件 在/etc/xinetd.d/下建立一个配置文件tftp sudo vi /etc/xinetd.d/tftp 内容如下 service tftp { socket_type dgram protocol udp wait yes user root …

c++多态--2(计算器,纯虚函数和抽象类)

为什么要用多态 早期方法不利于扩展开闭原则 开闭原则 对扩展开放 对修改关闭利用多态实现—利于后期扩展&#xff0c;结构性非常好&#xff0c;可读性高&#xff0c;效率稍微低&#xff0c;发生多态内部结构复杂 多态成立的条件 又继承 子类重写父类虚函数的函数&#xff1…

使用Automake和Autoconf生成Makefile

automake 所产生的 Makefile 除了可以做到程序的自动编译和链接 外&#xff0c;还可以用来生成各种文档&#xff08;如manual page、info文件&#xff09;&#xff0c;可以将源代码文件包装起来以供发布。所以程序源代码所存放的目录 结构最好符合GNU的标准惯例。下面以hello.…

c++中多态---3(虚析构和纯虚析构,向上类型转化和向下类型转化)

虚析构和纯虚析构 虚析构virtual ~类名(){}类内声明&#xff0c;类内实现解决问题&#xff1a;通过父类指针指向子类对象释放时候不干净的问题 纯虚析构 写法 virtual ~类名(){}0; 类内声明 类外实现 如果出现了纯虚析构函数&#xff0c;这个类也算是抽象类&#xff0c;不可…

嵌入式开发硬件知识札记

三态逻辑 1. 概念 三态指其输出既可以是一般二值逻辑电路&#xff0c;即正常的高电平&#xff08;逻辑1&#xff09;或低电平&#xff08;逻辑0&#xff09;&#xff0c;又可以保持特有的高阻抗状态。高阻态相当于隔断状态&#xff08;电阻很大&#xff0c;相当于开路&#xff…

《凡人修仙传》中打斗场景(c++多态实现)

我们 要实现打斗场景&#xff0c;第一&#xff0c;我们需要有打斗的双方&#xff0c;一个是英雄&#xff0c;一个是怪物&#xff0c;他们都有自己的属性&#xff0c;比如攻击&#xff0c;防御&#xff0c;血量。其次我们的英雄还会有武器。武器上有一些加成属性&#xff0c;可以…

使用mp4v2将aac音频h264视频数据封装成mp4开发心得

这阵子在捣鼓一个将游戏视频打包成本地可播放文件的模块。开始使用avi作为容器&#xff0c;弄了半天无奈avi对aac的支持实在有限&#xff0c;在播放时音视频时无法完美同步。 关于这点avi文档中有提到&#xff1a; For AAC, one RAW AAC frame usually spans over 1024 samples…

c++模板---1(模板概念,利用模板实现数组排序,函数模板调用规则)

什么叫泛型编程&#xff1f;1. 参数类型化。 2. 模板 模板概念 c提供了函数模板&#xff0c;所谓函数模板&#xff0c;实际上是建立一个通用函数&#xff0c;其函数类型和形参类型不具体制定&#xff0c;用一个虚拟的类型来代表。这个通用函数就成为函数模板。凡是函数体相同…

c++模板--2(模板机制,模板的局限性,类模板,类模板做函数的参数)

函数模板机制结论 编译器并不是把函数模板处理成能狗处理任何类型的函数函数模板通过具体类型产生不同的函数编译器会对函数模板进行两次编译&#xff0c;在声明的地方对模板代码的本身进行编译&#xff0c;在调用的地方对参数替换后代码进行编译在编译器编译阶段&#xff0c;…

arm-linux 交叉编译 mp4v2

2014-09-23 14:44 1901人阅读 评论(0) 收藏 举报 版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 1、下载mp4v2的源代码&#xff08;http://code.google.com/p/mp4v2/downloads/list&#xff09;mp4v2-2.0.0.tar.bz2 2. 进入相应目录 ./configu…

c++模板---3(类模板碰到继承问题,类模板类外实现,类模板与友元函数)

类模板碰到继承问题 基类如果是模板类&#xff0c;必须让子类告诉编译器 基类中的T到底是什么类型 如果不告诉&#xff0c;那么无法分配内存&#xff0c;编译不过 利用参数列表class Child :public Base<int> #include<iostream>using namespace std;template&l…

Linux USB札记

嵌入式linux内核添加USB模块&#xff08;U盘&#xff09;支持 使用menuconfig工具进行配置 1、Device Drivers->SCSI device support->SCSI disk support此选项必须勾选 2、Device Drivers->USB support->Support for Host-side USB 此选项选中后会出现子菜单&…

c++实现任意类型数组类的封装

MyArray.hpp #pragma once #include<iostream> #include<string> using namespace std; template<class T>class MyArray { public://构造explicit MyArray(int capacity) //防止隐式类型转换&#xff0c;防止MyArray arr 10{this->m_Capacity capacity…