我是 Ubuntu 新手。为了挂载硬盘,我添加了以下行/etc/fstab
并保存。
/dev/sda1 /home/mine/hd1 ext4 auto,exec,users,rw 0 0
输出sudo fdisk -l
:
Disk /dev/sda: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 1BE4FADE-5038-4B8E-BA1A-11E38749A593
Device Start End Sectors Size Type
/dev/sda1 2048 7814035455 7814033408 3.7T Linux filesystem
Disk /dev/sdb: 111.8 GiB, 120034123776 bytes, 234441648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 46108040-B863-4181-94EF-8DEEF7ACD4D5
Device Start End Sectors Size Type
/dev/sdb1 2048 1050623 1048576 512M EFI System
/dev/sdb2 1050624 201078783 200028160 95.4G Linux filesystem
/dev/sdb3 201078784 234440703 33361920 15.9G Linux swap
在 /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/sdb2 during installation
UUID=e4488cf9-7c51-4456-8626-bfe96ba919a8 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/sdb1 during installation
UUID=3144-2FF0 /boot/efi vfat umask=0077 0 1
# swap was on /dev/sdb3 during installation
UUID=4189137f-17b2-484c-83a9-8ca406d68cad none swap sw 0 0
/dev/sda1 /home/cpl/hd1 ext4 auto,exec,users,rw 0 0
但是我发现重启后它不起作用。例如,我想运行它/home/cpl/hd1/a.out
,它显示
bash: /home/cpl/hd1/a.out: Permission denied
我尝试了该命令chmod
,但失败了。
我怎样才能获得所有权限?(我发现,如果我删除我添加的行/etc/fstab
并运行sudo mount /dev/sda1 ~/hd1
,我将获得执行权限。问题是你每次启动时都需要再次运行它。)这是sudo ls -alh ~/hd1
我执行之前和之后的输出sudo mount /dev/sda1 ~/hd1
。
前:
total 8.0K
drwxrwxr-x 2 cpl cpl 4.0K Sep 4 17:39 .
drwxr-xr-x 21 cpl cpl 4.0K Sep 5 10:22 ..
后:
total 44K
drwsr-xr-x 8 cpl cpl 4.0K Sep 5 00:46 .
drwxr-xr-x 21 cpl cpl 4.0K Sep 5 10:22 ..
drwsr-xr-x 2 cpl cpl 4.0K Sep 4 18:53 beifen
drwsr-xr-x 3 cpl cpl 4.0K Sep 4 20:37 fanqiang
drwsr-xr-x 2 cpl cpl 16K Sep 1 14:02 lost+found
drwsr-xr-x 2 cpl cpl 4.0K Sep 4 16:01 test
drwsr-xr-x 5 cpl cpl 4.0K Sep 3 20:25 .Trash-1000
drwsr-xr-x 2 cpl cpl 4.0K Sep 4 21:00 utorrent
答案1
在这些选项中添加 ,uid=1001 (假设 /etc/passwd 中的用户 ID 是 1001)
/dev/sda1 /home/mine/hd1 ext4 auto,exec,users,rw,uid=1001 0 0
对我有用。
答案2
您的问题是将使用值 (用户 ID) 作为文件系统的所有者auto
自动挂载。由于您有但没有,它将使用默认值,即 root。uid
auto
uid
0
为什么它在重启之前可以工作?因为你设置了users
,允许普通用户挂载该设备。当普通用户挂载它时,uid 的默认值是当前用户的。因此,当你挂载它时,你拥有文件系统,当你使用自动挂载启动时,root 拥有文件系统。
只需添加uid=1000
。输入id
即可查看您的用户 uid。
另一个选择是修复文件的权限,使其不依赖于文件系统根继承。
以 root 身份挂载后(这对于 ext* 文件系统是正确的),键入sudo chmod a+x /mnt/my/file
so everyone canexecute that file。或者学习 unix 权限并添加组执行以匹配您的用户组。
答案3
最后我解决了这个问题,但忘了在这里记录下来。实际上,我只是对我添加的行做了一点改动/etc/fstab
:
/dev/sda1 /home/cpl/hd1 ext4 auto,users,exec,rw 0 0
东西 users
应该在 前面exec
。对我有用。