哥几个,今天想跟你们聊个特别实用的玩意儿,就是Linux里的那个remount命令。别看它名字有点怪,用好了真能救命。我刚入行那会儿,没少因为它吃瘪,后来弄懂了,才发现这玩意儿真是个宝贝。
本站为89游戏官网游戏攻略分站,89游戏每日更新热门游戏,下载请前往主站地址:www.gm89.icu
那会儿我刚出来工作,在一家小公司打杂,就是维护几台Linux服务器。有一天,出大事儿了。我们公司那套老掉牙的财务系统,跑在一个专门的Linux服务器上,突然就不能正常更新了。系统更新程序总是在 `/var/tmp` 目录里报错,说什么权限不够,没法执行脚本。我当时就懵了。
我第一时间就跑过去看,ls -l /var/tmp,一看权限,没毛病,777,大家都可读可写可执行。然后又看属主属组,也都没问题。折腾了好久,各种chmod、chown都试了一遍,屁用没有,还是一样的报错。
我当时真是急出了一身汗,想着是不是系统挂了,要不然就是硬盘坏了。那会儿对Linux还是一知半解,以为所有文件系统都是一样,只要权限对就能跑。后来实在没办法,我就去请教我们组的老大哥。他过来一看,没说直接敲了个命令:mount。
我当时还纳闷,看挂载信息干结果他指着一行,上面写着 `/var/tmp on /dev/mapper/centos-var_tmp type xfs (rw,nosuid,nodev,noexec,seclabel)`。他手指一戳,就指着那个 noexec。我当时心里咯噔一下,noexec?这是啥玩意儿?老大哥看我一脸懵逼,就说:“你看,你这 `/var/tmp` 是不允许执行程序的。”
我这才反应过来,合着不是文件权限的问题,是文件系统挂载的时候就限制了!怪不得我改了半天文件权限都没用。老大哥接着说:“现在系统跑着,不能直接改 `/etc/fstab` 然后重启?用 remount 试试。”
他直接敲了一行命令:
sudo mount -o remount,rw,exec /var/tmp
敲完之后,他让我再跑一遍那个财务系统的更新程序。我心里七上八下的,一点击更新,这回竟然顺利地跑起来了!我当时真是感觉一下子从地狱回到了人间,看老大哥的眼神都充满了崇拜。那是我第一次接触到 remount 这玩意儿,简直是打开了新世界的大门。
后来自己慢慢琢磨,才知道这 remount 的套路。
简单的说,mount -o remount,新选项1,新选项2... /挂载点,就是让你在不卸载文件系统的情况下,直接修改它的挂载选项。比如说,你本来挂载的是只读的,想改成可读写,就可以这么搞:
-
第一步:先看看你当前的挂载状态。
你得先知道你目标目录的挂载信息,就用
mount grep /你的目录。比如:
mount grep /mnt/data可能显示:
/dev/sdb1 on /mnt/data type ext4 (ro,relatime,data=ordered)你看,这里有个
ro,表示只读。 -
第二步:尝试写入,看看是不是真的只读。
touch /mnt/data/*如果报错:
Read-only file system,那就是真的只读了。 -
第三步:用
remount把它改成可读写。命令就是
sudo mount -o remount,rw /mnt/data这里
rw就是 read-write,可读写的意思。 -
第四步:再检查一遍,确认改动生效。
mount grep /mnt/data现在应该显示
(rw,relatime,data=ordered)了。 -
第五步:再次尝试写入。
touch /mnt/data/*这回应该就能成功了。
还有一种情况,就是像我刚开始遇到的那个 noexec 问题。有些系统为了安全,会把像 /tmp、/var/tmp 这些目录挂载成 noexec,不允许执行程序。但有时候你就是需要在里面跑个脚本,比如一些安装程序什么的,这时候 remount 就派上用场了。
你只需要记住一点,remount 命令后面跟着的选项,会替换掉或者追加到原来的选项上。如果你只写 remount,rw,那它可能只保留了 rw,把其他的选项都丢了。所以稳妥的办法是,你用 mount grep /你的目录 把原来的选项都看清楚,然后把需要保留的选项,加上你要改动的选项,一起写到 remount 命令里。比如:
原来是 (rw,nosuid,nodev,noexec),你想改成可以执行程序,就写成 sudo mount -o remount,rw,nosuid,nodev,exec /var/tmp。
是不是感觉这个 remount 挺好用的?它能让你在系统不重启、不卸载文件系统的情况下,快速调整挂载参数,对于救急或者临时测试特别方便。这种方式只是临时生效的,如果服务器重启了,或者你系统重新挂载了,那么这些改动就没了。如果想永久生效,那还得去改 /etc/fstab 文件。
刚开始学Linux的时候,很多小细节搞不清楚,就容易犯错误。但就像这个 remount,一旦搞明白了,就能解决不少麻烦。所以说,多动手,多琢磨,好多东西看着挺玄乎,就一层窗户纸,捅破了就懂了。