ubuntu使用bind将磁盘“同时挂载”在opt和usrlocal上的安装方法

    科技2022-07-16  107

    ubuntu使用bind将磁盘“同时挂载”在/opt和/usr/local上的安装方法

    导言安装系统挂载/opt、/usr/local到/data分割文件系统将新分割的文件系统挂载在/data上将/opt、/usr/local、/home迁移到/data中将/opt、/usr/local、/home挂载到/data上测试挂载是否成功

    导言

    从我的个人角度来说我之所以把/opt和/usr/local单独挂在到同一个文件磁盘中是因为我隔三岔五的搞机,重装系统. 我的matlab是装在/usr/local中的,我的anaconda和wps等软件是装在/opt中的,没有把他们统一装在一个目录下是因为更改路径太麻烦而且有可能导致软件出错,所以反其道而行之,把两个目录放在一个单独的文件系统中,这样如果系统崩了的话软件应该还额能保住

    在Linux目录规范中规定将第三方协力软件安装与/opt或者/usr/local中,由于这个原因,在磁盘分割时,往往把/usr和/目录放在同一个文件系统中,这样由于一些大型第三方软件会安装到/usr/local中,从而导致需要给根目录划分很大的空间,但Linux目录规范又规定了/目录的容量不宜过大,而且在上述的分割方式中,一旦根目录挂掉了连同安装的第三方软件也挂掉了,重装系统时需要重新下载安装,又由于/opt也中会装一些大型软件,所以也需要挂载,如果将/usr/local和/opt都单独挂载在独立的文件系统上的话,一方面在初次分割时对于分割空间的大小不好掌握,另一方面会造成空间的浪费,所以,可以把/home、/usr/local、/opt挂载在同一块磁盘上,这样重装系统的话只需要重装根目录,家目录与安装的第三方软件可以存留下来

    安装系统

    安装很简单,一搜一大堆,所以就不将步骤一一列出了,这里只给出安装时分割磁盘的方法

    在安装系统时只需要按照默认的操作安装就行了,只分割/、/boot这两个目录,根目录给了15G,/boot给了1G,这里我是在虚拟机中安装的,分配了一个200G的磁盘。(注意现在物理机安装时一般需要EFI分区,否则无法启动。此外有需要的可以分割一块swap,这里我没有分割) 安装样式选择something else 选中磁盘选择新的分割表,选择继续 右击free space选择add,新建分割 新建分割1024M主分区,挂载在/boot上 新建分割15G主分区,挂载在/上 剩下的空间安装完成后在分割,这里安装即可

    挂载/opt、/usr/local到/data

    首先分割将剩下的磁盘分割成一个文件系统将这个新分割的文件系统挂载在/data上将/opt、/usr/local、/home迁移到/data中将/opt、/usr/local、/home挂载到/data上

    分割文件系统

    使用fdisk将剩下的空间分割成一个新的partition,格式化成为ext4文件格式 fdisk /dev/sda 可以直接点击n,然后一路回车即可,最后记得w保存退出 格式化成ext4文件系统 mkfs.ext4 /dev/sda3

    将新分割的文件系统挂载在/data上

    sudo mkdir /data sudo mount /dev/sda3 /data

    将/opt、/usr/local、/home迁移到/data中

    sudo cp -r /opt /usr/local /home /data

    将/opt、/usr/local、/home挂载到/data上

    sudo blkid查看新分割的磁盘的UUID

    直接修改/etc/fstab sudo vim /etc/fstab 上图中后4行是添加来挂载新的文件系统的,首先将/dev/sda3挂载到/data上,这里使用uuid,倒数第三行是将/data/home的文件挂载到/home上 到此为止我们的这三个文件中的所有的文件都在/dev/sda3中了

    测试挂载是否成功

    sudo mount -a 如果不报错那么挂载成功了,此后每次开机会自动挂载 这里还有一个小问题是在自己的家目录操作文件发现没有权限了,这是因为复制的时候导致家目录的所属用户与组变成了root,这里改过来即可 sudo find /home/zc -exec chown zc:zc '{}' \; 接下来可以手动卸载/home、/usr/local、/opt, 删除原来在/dev/sda2下时的文件,然后执行sudo mount -a重新挂载。 这里可以在卸载前在家目录下创建一个文件(此时在/dev/sda3上),卸载后发现文件会不见了(此时是原来在/dev/sda2上的家目录),删除后在执行mount -a会发现所有的东西都回来了

    Processed: 0.008, SQL: 8