Linux mount命令挂载分区到指定目录

说实话,挂载Linux分区并不复杂,但如果真想一步一步教,还是需要弄清楚一些细节。
刚开始做的时候只是靠抄剧本,遇到了很多坑。

先说一下查找分区的步骤。
我习惯使用lsblk,因为输出很直观,我一眼就能看出哪个磁盘是主磁盘,哪个是分区。
比如我上次安装双系统的时候,用lsblk发现新买的SSD确实被识别为sdc,而旧硬盘被识别为sda——如果我直接用fdisk -l看的话,那一长串的分区表肯定会让新人摸不着头脑。
请记住,不要混淆主磁盘前缀,如 sda。
分区号是在其后面添加的数字。

当我创建挂载点时,我有一个小习惯。
直接使用 sudo mkdir /mnt/mydrive 是正确的,但是 Linux 目录结构比较乱。
如果/mnt下还有别的东西怎么办?我通常喜欢先用 ls /mnt 检查,或者只是挂载到专门用于挂载的目录,如 /media。
系统会自动清理挂载点,所以我不用担心。
上次我的一个同学坚持挂到/home/username/data。
结果系统自动挂载的U盘先占了那个目录,立马报错,笑死我了。

挂载命令这一步是最关键的。
使用 -t 参数指定文件系统类型是一个非常酷的操作。
我之前使用U盘安装Windows系统,在Linux上默认挂载为vfat。
结果,有些文件无法打开。
赶紧切换到 sudo mount -t ntfs-3 g /dev/sdb1 /mnt/mydrive 解决问题。
至于-o mount选项,我通常使用ro只读模式进行备份,或者使用noatime来节省磁盘I/O——这个选项确实可以省去很多麻烦,尤其是在挂载大硬盘时。

使用 df -h 确认安装是标准操作,但不要只看大小,需要看 Mounted On 栏是否正确。
我的一个朋友完成分区挂载后,最终将 /dev/sdb1 挂载到 /media/mydisk。
最后他问我为什么挂载点显示以/dev开头的路径。
我当时真是哭笑不得。

卸载前请确认没有进程占用此步骤。
我建议使用 fusion 命令,它比 lsof 更简单。
如果 sudo fusion -m /mnt/mydrive 没有找到输出,则意味着没有进程繁忙。
只需 sudo umount /mnt/mydrive。
如果您使用 lsof 发现 sshd 正在使用,请考虑重新启动该服务。

说到自动挂载/etc/fstab,我一般不会把它搞得太复杂。
只需编写一个简单的 /dev/sdb1 /mnt/mydrive ext4 默认值 0 0 即可。
但是您应该注意一个陷阱。
如果分区格式为xfs,则默认值可能需要替换为xfsdefaults,否则启动和挂载可能会失败。
我自己没有运行过这个。
我记得数据需要在XFS中添加xfs,但我建议你检查一下。

最后说一下我踩过的一个坑。
有一次重装系统,急着用数据,不小心挂载了系统盘分区。
结果系统文件被覆盖了...所以操作前请确保分区和挂载点正确。
这真的不仅仅是言语。
幸运的是我有备份,否则我必须重新安装一次。

分区挂载到已有目录

步骤:
检查硬盘。
使用lsblk。
硬盘共享。
fdisk 或分区。
格式化 mkfs.ext4 /dev/sdX1
创建挂载点。
mkdir /mnt/temp_newdisk. 挂载分区。
挂载 /dev/sdX1 /mnt/temp_newdisk。

移动数据。
rsync -av /data/ /mnt/temp_newdisk/. 实验数据。

卸载旧目录。
卸载/数据。
安装新部件代替旧部件。
挂载 /dev/sdX1 /data。

更改 fstab。
UUID=xxx /data ext4 默认 0 2 . 使用 mount -a 来应用。

备份您的数据。

不要忘记分布差异。