linux系统挂载知识
- linux的硬盘识别
2.6 kernel以后,linux会将识别到的硬件设备在/dev下建立相应的设备文件,如:
设备前缀 | 描述 |
---|---|
sda | 表示SCSI类硬盘 |
hda | 表示IDE类硬盘 |
scd | 表示USB类设备 |
我们可以通过fdisk -l命令来查看设备信息:1
2
3
4
5
6
7
8
9
10
11
12
13
14xxxxxx:~ $ sudo fdisk -l
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 8192 137215 129024 63M c W95 FAT32 (LBA)
/dev/mmcblk0p2 137216 30367743 30230528 14.4G 83 Linux
Disk /dev/sda: 74.5 GiB, 80026361856 bytes, 156301488 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7780b3c2
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 156301487 156299440 74.5G 83 Linux
通过命令我们可以看到/dev/sda1设备信息,这个设备标识已经分过区并且格式化过了,现在就可以挂载了,但在挂在前我们得设置一个挂载点啊,要不凭空怎么挂呢,是吧,一般可以选择/mnt目录下获知/media目录下,先在选定目录下创建一个文件夹,然后就可以挂载在文件夹上了。1
2mount -t ext4 /dev/sda1 /media/disk1
umount /dev/sda1
其中第一句中的ext4 表示文件系统类型(可以通过parted程序查看);iocharset=utf8文件读取格式,可选参数;umask表示让挂载的分区允许所有用户读取和修改,可选参数。第二句为卸载命令。
这个只是临时的挂在,如果要在开机的时候就挂载的话则需要修改/etc/fstab。
下面详细来说下mount 命令和mount相关参数设定:
标准模式的mount命令使用是如下的形式:1
mount -t type device dir
其中type代表的是挂在文件的文件系统,device代表fdisk查找的块设备,dir代表的是需要挂在的路径;
文件系统独立挂载选项
这些参数只在/etc/fstab文件中用到,有些参数在系统内核已经给定了默认值来启用或关闭某些特性,如果要查看这些参数,可以查看/proc/mounts文件。
下面这些参数可以用在一些文件系统挂载时,但是不是每个文件系统都可以使用这些参数,比如sync目前只使用于 ext2、ext3、fat、vfat和ufs文件系统:
命令 | 描述 |
---|---|
async | 所有的i/o都要满足异步输入输出,同样sync亦是如此 |
atime | 不要使用noatime特性,那么对inode的访问将使用内核默认的 |
noatime | 不更新文件的访问时间 |
auto | !自动挂载,可以在mount时候使用-a参数启用 |
noauto | 只能显示挂载 |
/etc/fstab
该文件包含了不同的文件系统的描述信息,是静态的文件系统信息。它由系统管理员修改和管理的,只能通过系统程序读取,对其他用户是不可写的。
文件中每一行代表了一个文件系统,以#开头的是解释性内容,空白行会被忽略。在文件中,每条记录的顺序也是很重要的,因为fsck、mount和umount命令都是顺序迭代fstab来做它们自身的业务。
该文件中每行由六个字段属性组合而成,各字段功能解析:
- (文件块)该字段描述了需要挂载的块设备和远程文件系统。对于普通的挂在,其会保持一个块设备节点(由mknod创建),如‘/dev/cdrom’、‘/dev/sdb7/’,而对于NFS格式文件系统会以
:dir形式挂载,如‘knuth.aeb.nl:/’。
除了明确指定块设备路径,我们还可以通过标签或者UUID来挂载块设备,如‘LABEL=Boot’,‘UUID=3e6be9de-8139-11d1-
另外还可以通过PARTUUID= and PARTLABEL=z来挂载快设备,但是这两个特性只支持GUID分区表(GPT)和MAC分区表。-9106-a43f08d823a6’。
- 文件挂载点,对于swap分区,该字段需要指定为‘none’,如果文件挂载点包含了空格字符,需要以‘\040’替换。
- 文件系统格式,说明挂载的块设备是什么类型的文件格式,目前linux支持文件系统有:adfs, affs, autofs, coda,
coherent, cramfs, devpts, efs, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, ntfs, proc, qnx4, reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, vfat, xenix, xfs和其他,如果要更详细的可以通过mount查看。
- 声明与文件系统相关的选项,选项列表是以逗号分割开来的,包含挂载类型以及任何适合于文件系统类型的附加选项。有关可用安装选项的文档,请参考mount(8)),在可用的swap选项文件,请参考wapon(8))。
基础的一些参数选项有:
参数 | 描述 |
---|---|
defaults | 使用默认参数:rw,suid,dev,exec,auto,nouser and async |
noauto | 在‘mount -a’命令下,不挂载文件系统 |
user | 允许一个用户挂载 |
owner | 允许块设备拥有者挂载 |
comment 或 x- |
使用fstab维护程序 |
nofail | 如果快设备不存在,不要报告错误 |
- 指定该文件系统是否需要备份,如果该字段没有指定,默认则是为0,也即该文件系统不需要备份,如果需要查看备份选项可以看dump(8))。
- 指定文件系统是否需要检查和检查顺序,具体选项意义可以查看fsck(8)),对于root文件系统需要指定为1,其他文件系统指定为2,如果字段没有指定,默认值为0,也即表明文件系统不需要检查。
参考资料:
- http://man.yolinux.com/cgi-bin/man2html?cgi_command=mount
- http://blog.chinaunix.net/uid-7411781-id-2056205.html
- http://www.jb51.net/os/RedHat/1117.html
- http://qq85609655.iteye.com/blog/1449899
- http://freearth.blog.chinaunix.net/uid-20769015-id-3478861.html
- http://blog.csdn.net/jiyuanyi1992/article/details/43866273
- /etc/fstab文件解析:http://blog.csdn.net/richerg85/article/details/17917129
- http://blog.163.com/fan_yishan/blog/static/47692213200951343813425/