我在 Virtualbox 中安装了 Ubuntu。我想在登录 Ubuntu 时自动在 Ubuntu 中挂载我的 VirtualBox 共享文件夹。我在 ~./bashrc 和 ~/.bash_profile 中输入了以下行:
sudo mount -t vboxsf windows_share /media/windows_share
其中 windows_share 是我使用 Virtualbox 创建的名称。但是每次启动 Ubuntu 时,它都会要求我输入密码,因为它需要 sudo。有没有办法在每次登录时自动挂载 Windows 共享而无需输入密码?
答案1
要在启动 Ubuntu 客户机时始终安装 Virtual Box“共享文件夹”,我们有两个选项。哪个选项在我们的设置中效果最好取决于个人喜好。
1. 使用 fstab 挂载
vboxsf
使用提供的文件系统挂载共享文件夹新增嘉宾我们首先需要确保满足先决条件.然后我们可以将以下行放入我们的etc/fstab
文件中:
<name_of_share> /path/to/mountpoint vboxsf <options> 0 0
将name_of_share
和替换/path/to/mountpoint
为您的个人设置(必须先创建挂载点的目录)。请参阅 mount 的手册页<options>
。一种可能性是使用 进行挂载defaults
,或者给出特定的挂载选项(例如rw, suid, exec, auto, users
)。
在某些系统上,内核模块在启动vboxsf
时尚未加载。将内核模块附加到可能会有所帮助。fstab
vboxsf
/etc/modules
comment=systemd.automount
某些系统可能需要在其 fstab 条目中选择(来源)。
2. 使用 Virtual Box“自动挂载”进行挂载:
在 Virtual Box 的最新版本中,我们还可以在创建时自动挂载共享文件夹:
在重新启动客户机后,此共享文件夹将被挂载/media/<username>/sf_<name_of_share>
到所有已成为组成员的用户都可以访问的来宾目录vboxsf
。
答案2
编辑
/etc/rc.local
sudo -H gedit /etc/rc.local
键入之前
exit 0
:mount.vboxsf windows_share /media/windows_share vboxsf
节省
(选修的)创建桌面或主文件夹的快捷方式:
ln -s /media/windows_share /home/freddy/Desktop
为了避免出现按年代跳过挂载或按米要手动修复,您可能需要删除您的条目fstab
答案3
对于较新的systemd基于系统,您需要替代方法 - 最简单的方法是另一个中提到的方法回答对于另一个问题 - 基本上说你需要comment
在条目中添加一个特殊选项/etc/fstab
:
src /my_mount/src_host vboxsf auto,rw,comment=systemd.automount 0 0
但是,为了使上述功能在某些系统上正常工作,您需要选中 VirtualBox 的共享文件夹->添加对话框中的“自动挂载”框,这意味着您最终可能会得到几个重复的目录挂载。
为了更干净的挂载 - 没有重复的目录,也不需要“自动挂载” - 您需要使用 systemd 的山和自动挂载指令。为此,请创建两个以/usr/lib/systemd/system/
所需挂载点命名的条目,例如,为了匹配上面的 fstab 挂载点,它们将被命名my_mount-src_host.mount
并包含:
[Unit]
Description=VirtualBox shared "src" folder
[Mount]
What=src
Where=/my_mount/src_host
Type=vboxsf
Options=defaults,noauto,uid=1000,gid=1000
和my_mount-src_host.automount
:
[Unit]
Description=Auto mount shared "src" folder
[Automount]
Where=/my_mount/src_host
DirectoryMode=0775
[Install]
WantedBy=multi-user.target
然后他们需要实现以下功能:
sudo systemctl enable my_mount-src_host.automount
sudo systemctl enable my_mount-src_host.mount
它们现在将在启动时挂载。如果您想要立即挂载它们(前提是已创建共享文件夹),您可以这样做:
sudo systemctl start my_mount-src_host.mount
请注意,如果您的目录中有奇数名称或破折号(-),则使用它systemd-escape
来查找适当转义的名称。
答案4
我尝试了 rc.local 解决方案,但无法使其工作。
但是我发现问题似乎与您运行命令的文件夹有关(不知道为什么)。所以我在 mount 命令之前添加了一行以将目录更改为我的主文件夹,现在它可以正常工作了。
因此,我的 Windows 共享名为Dropbox
,我的挂载点是/home/jamie/Dropbox
,我的用户名是jamie
,这是我在 rc.local 中输入的内容:
cd /home/jamie
mount.vboxsf /home/jamie/Dropbox Dropbox vboxsf
exit 0