Linux :磁盘分区、挂载知多少?( 三 )


umount /disk1
umount /data
3.1.2 再重新挂起来:
mount /dev/sda5 /data
mount /dev/sda6 /disk1
注意:如前所述,不能2个分区同时挂载到/data
3.2 永久挂载:开机自动挂载
上面步骤中的方法只是临时工干的活儿,开机后磁盘分区会不可见或者还是挂载之前的模样,要想永久生效,还需要修改/etc/fstab,将
LABEL=/data /data ext3 defaults 1 2
LABEL=/disk1 /disk1 ext3 defaults 1 2
修改为:
/dev/sda5 /data ext3 defaults 1 2
/dev/sda6 /disk1 ext3 defaults 1 2
说明:fstab 是文件系统分配表的配置文件,该文件有着严格的语法格式限制,类似 crontab 一样,保存时也会对你的输入格式进行校验,请慎重使用,否则会有意想不到的问题发生 。其一共有 6 个字段,空格分隔,具体每个字段的含义请参考这里,不再赘述:http://diamonder.blog.51cto.com/159220/282542
3.3 以下是添加硬盘&分区&挂载(高危操作,新手慎用!)
友情提示:分区操作是高危操作,尤其是新手同学请勿在生产环境随意尝试,否则后果自负!
更为详细的分区教程请参见:
linux磁盘分区fdisk命令详解 http://linux008.blog.51cto.com/2837805/548711
fdisk /dev/sdb 输入m---n---p---1--回车---回车---p---w mkfs.ext3 /dev/sdb1 mkdir /disk2 mount /dev/sdb1 /disk2/ 在/etc/fstab中添加:/dev/sdb1 /disk2 ext3 defaults 1 24、通过 fstab 设置开机挂载的坑fstab 文件大家都很熟悉,Linux 在启动的时候通过 fstab 中的信息挂载各个分区,一个典型的分区条目就像这样:
/dev/sdb4 /mnt/usb vfat utf8,umask=0 0 0
/dev/sda4 为需要挂载的分区,sda4 是 Linux 检测硬盘时按顺序给分区的命名,一般来讲,这个名称并不会变化,但是如果你有多块硬盘,硬盘在电脑中的顺序变化的时候,相同的名称可能代表着不同的硬盘分区,如果你是从 USB 设备启动,与其他 USB 设备的插入顺序也会导致分区识别的困难 。
因此上面 3.2 小节中的配置直接写 /dev/sda6 是有很大的隐患的,重启后硬盘的顺序可能发生变化,比如 你把 Nginx 的用户日志放在一个单独的分区上,那么重启后虽然设置了 fstab,但是由于顺序变了相同的分区号可能代表不同的硬盘分区了,这样就会导致某些分区上的数据服务不可用了 。
这个时候 UUID 就派上用场了,UUID 全称是 Universally Unique Identifier,也就是说,每个分区有一个唯一的 UUID 值,这样就不会发生分区识别混乱的问题了 。
在 fstab 中用 UUID 挂载分区,看起来向这样:
UUID=1234-5678 /mnt/usb vfat utf8,umask=0 0 0
在 UUID= 后面填入分区相应的 UUID 值,就可以正确挂载分区了 。
那么,我们如何知道一个分区的 UUID 呢?
有 3 种方法:
4.1 通过浏览 /dev/disk/by-uuid/ 下的设备文件信息
# ls -l /dev/disk/by-uuid/
------
lrwxrwxrwx 1 root root 10 10-13 09:14 0909-090B -> ../../sdb5
lrwxrwxrwx 1 root root 10 10-13 09:13 7c627a81-7a6b-4806-987b-b5a8a0a93645 -> ../../sda4
.....
4.2 通过 vol_id 命令
# vol_id /dev/sdb5
ID_FS_USAGE=filesystem
ID_FS_TYPE=vfat
ID_FS_VERSION=FAT32
ID_FS_UUID=0909-090B
ID_FS_UUID_ENC=0909-090B
ID_FS_LABEL=SWAP
ID_FS_LABEL_ENC=SWAP
ID_FS_LABEL_SAFE=SWAP
4.3 通过 blkid 命令
# blkid /dev/sdb5
/dev/sdb5: LABEL="SWAP" UUID="0909-090B" TYPE="vfat"
通过这三种方法都可以获得分区的 UUID,UUID 依据分区不同,长度和格式都不相同 。比如我最后把 /dev/sdb 挂载在了 /data1 目录下(不放心的话重启或者生成文件测试下,看挂载分区的空间被占用没):
文件系统 类型 容量 已用 可用 已用% 挂载点/dev/sda3 ext4 518G 2.7G 489G 1% /tmpfs tmpfs 16G 0 16G 0% /dev/shm/dev/sda1 ext4 1008M 61M 896M 7% /boot/dev/sdb ext4 1.8T 1.1G 1.7T 1% /data1grep -v '#' /etc/fstab |column -tUUID=0c685e8b-dbb3-4a1c-a106-3f1716ab34dd / ext4 defaults,noatime 1 1UUID=2d7f1bcf-06d1-486e-87df-404ba670fcd9 /boot ext4 defaults,noatime 1 2UUID=248e7a99-b459-4800-bbd3-354047e49a2f swap swap defaults,noatime 0 0tmpfs /dev/shm tmpfs defaults,nosuid,noexec,nodev 0 0devpts /dev/pts devpts gid=5,mode=620 0 0sysfs /sys sysfs defaults 0 0proc /proc proc defaults 0 0UUID=870ebaf6-727f-48d3-b60c-f203339d94ac /data1 ext4 defaults,noatime 0 05、FAQ: