![重启后文件夹链接断开](https://linux22.com/image/1124559/%E9%87%8D%E5%90%AF%E5%90%8E%E6%96%87%E4%BB%B6%E5%A4%B9%E9%93%BE%E6%8E%A5%E6%96%AD%E5%BC%80.png)
我刚刚将 Ubuntu 14.04.1 安装在一个有现有分区的驱动器上。我想为安装在其中一个分区 (/media/emily/ Gaming) 上的游戏创建一个链接/快捷方式。创建 .jar 文件 (FTB.jar) 的链接并将该链接移动到桌面后,它就可以正常工作了。但重新启动后,它说链接已损坏并要求我将其删除。
驱动器当前显示已安装。有没有什么办法可以解释为什么会发生这种情况?
我对 Linux 还很陌生,因此,如果能详细描述一下可能发生的情况并提出修复建议,我将非常感激。
重启后:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 298.1G 0 disk
├─sda1 8:1 0 28G 0 part /
├─sda2 8:2 0 1K 0 part
├─sda3 8:3 0 6.5G 0 part [SWAP]
├─sda4 8:4 0 65.6G 0 part /home
├─sda5 8:5 0 100G 0 part
└─sda6 8:6 0 98G 0 part
sr0 11:0 1 1024M 0 rom
$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda1 during installation
UUID=2fee48ec-8d63-4125-9eca-5b2e1061602d / ext4 errors=remount-ro 0 1
# /home was on /dev/sda4 during installation
UUID=b3804a77-7d80-40a6-8f92-212bed16a151 /home ext4 defaults 0 2
# swap was on /dev/sda3 during installation
UUID=8fff87b8-2128-48ae-bfd4-bc959458f99d none swap sw 0 0
从游戏分区建立链接后:
$ mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
/dev/sda4 on /home type ext4 (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=emily)
/dev/sda5 on /media/emily/ Gaming type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
答案1
在 Ubuntu 中,当您第一次在 Nautilus 中单击分区时,分区可能会自动挂载,而通过右键单击并选择“卸载”可以卸载分区。挂载分区后,您可以创建一个工作链接,但重新启动后,它不会挂载,直到您再次单击它;然后,链接才会工作。
解决方案是明确挂载分区。这会将其连接到您选择的某个目录中的文件系统。因此,需要几个步骤,但都不是很复杂,尽管由于权限问题会稍微有点问题,尤其是当分区格式化为 NTFS 时,您的分区似乎就是这种情况。
为了学习,您可以mount
在终端中使用命令,然后使用umount
命令卸载。但最终,您将希望在中进行永久输入/etc/fstab
,尽管也有一种方法可以在那里进行实验,使用 mount 命令的形式告诉它安装文件中的所有内容,并查看是否会出现错误。如果事情不符合您的喜好,您可以发出命令umount
卸载新分区,编辑文件,然后重试。
这可能不清楚,但我稍后会解释。
一个问题是我没有任何 NTFS 分区,所以我无法真正告诉您确切使用什么选项来获取正确的权限,这就是为什么我尝试不发布答案,而是发表评论。
现在,请注意 mount 命令给出了如下一行:
/dev/sda5 on /media/emily/ Gaming type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
不过,我不知道为什么“Gaming”前面有一个空格。这看起来像是一个错误,但没关系,因为我们将创建一个要使用的目录。
答...首先,您需要创建一个空目录用于挂载,因为它需要存在。因此,为了避免与自动挂载点混淆,请在目录下创建它/mnt
,如下所示:
sudo mkdir /mnt/gaming
sudo chown emily:emily /mnt/gaming
我假设 emily 是您的用户名;如果不是,请用其他名称代替。
B... 下一步是找到一个更好的分区标识符。您可以使用“/dev/sda5”,但这不是最可靠的标签,因为它可能会发生变化。为了清楚起见,我个人使用磁盘标签,但大多数人似乎都想使用 UUID,它是在格式化时分配的,并且始终是唯一的。要找到此 ID,您需要输入sudo blkid
并查找以“/dev/sda5”开头的行。应该有一个部分,其中包含类似于 的内容UUID="nnnnnnnnnnnnnnnn"
,是数字和数字的某种组合。您将把它复制到 fstab 文件中(突出显示大数字,使用 shift-ctrl-C 复制,然后将其粘贴到文件中(不过稍后再进行)。
C... 接下来,打开/etc/fstab
进行编辑;我假设您将使用 gedit,但任何基本编辑器都可以。输入gksu gedit /etc/fstab
(因为该文件归 root 所有)。在文件末尾添加一行:
UUID=nnnnnnnnnnnnnn /mnt/gaming ntfs-3g defaults,user_xattr 0 0
D... 保存,但不要关闭文件。转到终端,然后输入mount -a
。这将挂载 中的所有内容/etc/fstab
,并且希望不会出现任何错误。如果您在添加的行中遇到任何错误,并且不明白原因,请在行首添加井号 (#) 以禁用它,保存、关闭并发回寻求帮助。
如果一切正常,请尝试查找目录/mnt/gaming
,并查看分区是否可以访问。尝试创建指向该目录的链接,并查看它是否按您想要的方式工作。
我希望这会有所帮助。如果没有帮助,也许其他人可以做得更好,因为我现在需要离开了。
编辑
我尝试添加项目符号,结果弄乱了一些格式,由于我当时要匆忙离开,所以没有注意到。因此,两行没有分开,变成了一行,结果是:
sudo mkdir /mnt/gaming sudo chown emily:emily /mnt/gaming
我对此感到很抱歉;它所做的就是创建了多个目录 - 它创建了、、和/mnt/gaming
,sudo
然后再次尝试创建 /mnt/gaming,导致出现错误消息。除了一些奇怪的目录(由于 sudo 由 root 拥有)之外,没有造成任何实际损害。除了您发出命令时所在的目录(可能是您的主目录,)之外,其他所有目录都位于您准备好时所在的目录中。我会在您准备好时帮助您删除它们。我对此真的很抱歉;我最初不想回答,因为我没有足够的时间,也许尝试是一个错误。chown
emily:emily
/mnt/gaming
/home/emily
编辑2
当您输入 时/mnt/gaming
,系统会尝试在“/mnt”目录中运行名为“gaming”的文件。您需要执行cd /mnt/gaming
然后ls
才能查看文件,或者使用 Nautilus 在文件系统根目录下找到该目录。
我不知道 gedit 的错误是什么,但它可能与任何事情都无关。当您输入 时sudo mount -a
,如果它有效,它应该什么也不做;这是 Linux 的方式。如果有错误,它会告诉你;否则它只是默默地做你期望的事情。所以,假设分区出现了,它就起作用了。
笔记
我会继续检查直到解决