站长博客
站长博客随手笔记
Toggle navigation
站长博客
Home
MacOS
Database
Linux
PHP
Git
Golang
About Me
Archives
Tags
通过UUID挂载磁盘
2021-05-04 12:09:08
805
0
0
admin
UUID 全称是 Universally Unique Identifier,也就是说,每个分区有一个唯一的 UUID 值,Linux系统(红帽系列的Fedora,Cent OS,或Debian系列的Ubuntu,LinuxMint,等等)都采用UUID方式挂载分区,避免发生分区识别混乱的问题。 `fstab`文件位于`/etc/`下,挂在分区的格式为: ``` # <file system> <mount point> <type> <options> <dump> <pass>` ``` 例如: ``` s_spec fs_file fs_type fs_options fs_dump fs_pass /dev/hda1 / ext2 defaults 1 1 ``` `fs_spec` - 该字段定义希望加载的文件系统所在的设备或远程文件系统,对于一般的本地块设备情况来说:IDE设备一般描述为/dev/hdXN,X是IDE设备通道(a, b, or c),N代表分区号;SCSI设备一描述为/dev/sdaXN; `fs_file` - 该字段描述希望的文件系统加载的目录点,对于swap设备,该字段为`none`;对于加载目录名包含空格的情况,用40来表示空格; `fs_type` - 定义了该设备上的文件系统,一般常见的文件类型为`ext2` (Linux设备的常用文件类型)、`vfat`(Windows系统的fat32格式)、`NTFS`、`iso9600`等; > 如果想了解你的kernel目前支持哪些文件系统,可以查看/proc/filesystems的内容:`sudo cat /proc/filesystems` `fs_options` - 指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。对于大多数系统使用`defaults`就可以满足需要; > 文件系统选项(fs mntops)在装载文件系统时使用的装载选项。多个选项之间用逗号做分隔符,这些选项列表包括了装载类型以及对于该文件系统合适的其它装载选项。对于非 NFS系统可用的装载选项可以参看mount命令的说明,对于nfs系统的选项可以查看关于nfs的文档。对于所有文件系统都适用的选项有noauto (当使用mount –a命令时不载入),user(允许用户进行装载),owner(允许设备所有人装载),_netdev(设备需要网络),后两个选项是linux系统所特有的。 > 对于大多数系统使用"defaults"就可以满足需要。其他常见的选项包括: > | 选项 | 含义 | | ------------ | ------------ | | defaults | 使用默认选项: rw,suid,dev,exec,auto,nouser,async | | exec | 允许执行此分区的二进制文件 | | noexec | 不允许执行此文件系统上的二进制文件 | | ro | 以只读模式加载该文件系统 | | rw | 以读写模式挂载文件系统 | | sync | 不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破坏文件系统,但是却降低了计算机速度 | | user | 允许普通用户加载该文件系统。若无显示定义,隐含启用 noexec, nosuid, nodev 参数 | | users | 允许所有 users 组中的用户挂载文件系统 | | nouser | 只能被 root 挂载 | | owner | 允许设备自己挂载 | | quota | 强制在该文件系统上进行磁盘定额限制 | | noauto | 不再使用`mount -a`命令(例如系统启动时)加载该文件系统 | | nofail | 如果这个设备不存在,不报告错误信息 | | sync | I/O 同步进行 | | async | I/O 异步进行 | | dev | 解析文件系统上的块特殊设备 | | nodev | 不解析文件系统上的块特殊设备 | | suid | 允许 suid 操作和设定 sgid 位。这一参数通常用于一些特殊任务,使一般用户运行程序时临时提升权限 | | nosuid | 禁止 suid 操作和设定 sgid 位 | | noatime | 不更新文件系统上 inode 访问记录,可以提升性能(参见 atime 参数) | | nodiratime | 不更新文件系统上的目录 inode 访问记录,可以提升性能(参见 atime 参数) | | relatime | 实时更新 inode access 记录。只有在记录中的访问时间早于当前访问才会被更新。(与 noatime 相似,但不会打断如 mutt 或其他程序探测文件在上次访问后是否被修改的进程。),可以提升性能(参见 atime 参数) | | flush | vfat 的选项,更频繁的刷新数据,复制对话框或进度条在全部数据都写入后才消失 | | umask= | 指定权限掩码。例如:umask=0000或umask=0222。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。例如:"drwxr-xr-x"="777-022=755"。 | | iocharset= |指定你的本地编码。 例如:你的某个分区是编码是utf8,而设备中文件的编码是gb2312,当是复制你设备中的文件到你的这个分区时,它将自动做编码转换 | | nls= | 在=号后面加入你的本地编码,你的中文就不会出现乱码 | `fs_dump` - 该选项被dump命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设置该字段为`0` ; `fs_pass` - 该字段被`fsck`命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统`/`对应该字段的值应该为`1`,其他文件系统应该为`2`。若该文件系统无需在启动时扫描则设置该字段为`0`; 我们重新回到UUID这个主题上,一般情况下,安装的新系统,默认只会挂载根分区“/”及swap分区,可能还有“/home”分区。那么我们想要挂载其他已经存在的分区的时候,如何知道现有分区的UUID呢,以便我们通过修改`/etc/fstab`文件来达到启动系统后,自动挂载分区的目的。 ## 1.通过查看 `/dev/disk/by-uuid/` 下的设备文件信息: ``` # ll -l /dev/disk/by-uuid/ 总用量 0 lrwxrwxrwx 1 root root 10 4月 8 2017 185900c8-ba6c-403e-96ee-844414c9d835 -> ../../sdb1 lrwxrwxrwx 1 root root 10 4月 8 2017 713dfd51-00ad-4500-aa03-e7846dc6de4c -> ../../sda3 lrwxrwxrwx 1 root root 10 4月 8 2017 831df52d-baad-4902-bcce-6128cec95411 -> ../../sdb2 lrwxrwxrwx 1 root root 10 4月 8 2017 c82632c8-8232-4dd1-a4e9-0c13d2001345 -> ../../sda1 lrwxrwxrwx 1 root root 10 4月 8 2017 f928a6a1-4f2e-4e69-8567-631648f0dc51 -> ../../sda2 ``` ## 2.通过`blkid`命令(推荐): ``` # blkid /dev/sda2: UUID="f928a6a1-4f2e-4e69-8567-631648f0dc51" TYPE="ext4" /dev/sda1: UUID="c82632c8-8232-4dd1-a4e9-0c13d2001345" TYPE="ext4" /dev/sda3: UUID="713dfd51-00ad-4500-aa03-e7846dc6de4c" TYPE="swap" /dev/sdb1: UUID="185900c8-ba6c-403e-96ee-844414c9d835" TYPE="ext4" /dev/sdb2: UUID="831df52d-baad-4902-bcce-6128cec95411" TYPE="ext4" ``` 知道UUID后,我们就可以编辑fstab文件来挂载分区。 编辑`/etc/fstab`文件: ``` # UUID=f928a6a1-4f2e-4e69-8567-631648f0dc51 / ext4 defaults 1 1 UUID=c82632c8-8232-4dd1-a4e9-0c13d2001345 /boot ext4 defaults 1 2 UUID=713dfd51-00ad-4500-aa03-e7846dc6de4c swap swap defaults 0 0 UUID=185900c8-ba6c-403e-96ee-844414c9d835 /media/diskb1 ext4 defaults 0 0 UUID=831df52d-baad-4902-bcce-6128cec95411 /media/diskb2 ext4 defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 ``` 编辑保存后,使用命令`mount -a`进行挂载测试,没有报错信息说明fstab文件没有问题 重启,如果在启动的时候,没有出现挂载失败信息,即挂载成功。
Prev:
Golang下文件锁的使用
Next:
树莓派挂载移动硬盘
0
likes
805
Weibo
Wechat
Tencent Weibo
QQ Zone
RenRen
Table of content