Azure虚拟机写入/mnt(/dev/sdb1)时Permission denied的解决求助
Azure虚拟机写入/mnt(/dev/sdb1)时Permission denied的解决求助
你遇到的这个问题其实很常见——挂载到/mnt的/dev/sdb1磁盘,默认所有者是root用户,普通用户自然没有直接写入的权限,所以才会触发Permission denied提示。别着急,按下面的步骤一步步来就能解决:
第一步:先确认/mnt的权限状态
先跑这条命令看看当前/mnt的权限和所有者信息:
ls -ld /mnt
输出大概率会是这样(所有者和组都是root):
drwxr-xr-x 2 root root 4096 Aug 1 10:00 /mnt
这里的rwxr-xr-x意味着只有root用户有读写执行权限,其他用户只能读和进入目录,没法写入内容。
第二步:给普通用户开放/mnt的写入权限
有两种常用方案,你可以根据自己的场景选:
方案1:把/mnt的所有者改成你的普通用户
假设你的日常用户名是your_username,执行这条命令(需要sudo权限):
sudo chown your_username:your_username /mnt
之后再用ls -ld /mnt确认所有者已经变成你的用户,这时候你就能直接在/mnt下创建文件、移动内容了。
方案2:给/mnt添加全局写入权限(适合多用户共享场景)
如果这台虚拟机有多个用户需要使用这个大磁盘,可以给/mnt开放全局写入权限:
sudo chmod o+w /mnt
这种方式所有用户都能写入,但安全性稍低,只适合信任的环境。
第三步:迁移你的文件到/mnt
权限设置好后,就可以把存满/dev/root的文件移过去了。比如你的文件都在/home/your_username/downloads目录下,用这条命令迁移:
mv /home/your_username/downloads/* /mnt/
如果文件很大,更推荐用rsync(支持断点续传,更稳妥):
rsync -avh /home/your_username/downloads/ /mnt/
迁移完成后,记得检查文件是否完整,再删除原目录的文件释放/dev/root的空间:
rm -rf /home/your_username/downloads/*
额外建议:创建专用子目录(更规范的管理方式)
其实不建议直接在/mnt根目录存文件,更规范的做法是先在/mnt下建一个专属目录,比如/mnt/data,再把权限给你的用户:
sudo mkdir /mnt/data sudo chown your_username:your_username /mnt/data
之后把所有文件都放到/mnt/data里,这样管理起来更清晰,也不会和其他可能挂载的目录冲突。
备注:内容来源于stack exchange,提问作者Gideon Kogan
相关产品推荐
相关产品推荐

