自动挂载具有用户权限/所有权的ext4分区(使用fstab?)

我刚刚在我的 Acer Aspire One D257 上安装了 Lubuntu 12.10 "Quantal Quetzal",创建了以下分区: $ df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda5 15G 2.1G 12G 15% / ... /dev/sda1 1008M 62M 896M 7% /boot /dev/sda6 15G 180M 14G 2% /home /dev/sda4 195G 188M 185G 1% /media/data
(或参见 partitions.png:)
我知道引导分区对于旧 BIOS 很有用,但现在它们也对加密、LVM 等很有用(尽管与专用 GRUB 分区不同!)
我使用实用程序 Disks 重命名了“data”分区(= sda4)的标志/名称。
我已经试了几个小时,想找到一个解决方案:
如何让我的数据分区(而不是我的主目录分区!)在启动时自动挂载到某个地方(如果可能,在 /media/data 中),并将我(用户 = christophe)作为所有者,并将权限设置为 rwxrwxr-x(= 用户:rwx,组:rwx,其他:r-x)?
我的问题是每次重新启动时:
/media/data 回到根拥有权下
/media/data 回到 rwxr-xr-x 权限下
/media/data 内容回到了丢失+found(!!!)
经常在尝试 /etc/fstab 中的选项时,在启动时出现“挂载 /media/data 时发生错误”。
我主要尝试编辑我的 /etc/fstab 文件。现在它是: $ 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). # # # / was on /dev/sda5 during installation UUID=8325697c-2c27-49dd-99f8-2a1a3e1467be / ext4 errors=remount-ro 0 1 # /boot was on /dev/sda1 during installation UUID=3ba24cc6-e38b-48d9-b526-68358783d980 /boot ext4 defaults 0 2 # /home was on /dev/sda6 during installation UUID=1ef16ece-0965-4611-a2e5-dd687f4ee5ff /home ext4 defaults 0 2 # /media/data was on /dev/sda4 during installation # UUID=0598f54b-dcf8-4508-97de-94d9f2c5e2a8 /media/data ext4 defaults 0 2 UUID=0598f54b-dcf8-4508-97de-94d9f2c5e2a8 /media/data ext4 rw,suid,dev,exec,auto,user,async,errors=remount-ro,relatime,uid=1000,gid=1000 0 2 # swap was on /dev/sda2 during installation UUID=04f73159-479d-4a4b-a78c-37a406909225 none swap sw 0 0
在某种程度上,我希望我的数据分区能像我的主目录分区一样自动挂载。
我不想要一个解决方案,其中我必须每次重新启动时都要 chmod 或 chown 或做一些事情!
感谢。

1这个问题与被标记的类似问题有所不同。首先,它是对链接问题中所讨论的一般问题的具体子案例。其次,对于那些对Linux/Ubuntu知识有限的人来说,通过搜索更容易找到它,因此更有价值。它解决了可能需要这个答案的特定使用情况,而不是实际完成任务的方法。 - SRDC
2个回答

对于ext[234],没有uid选项。如果你想改变文件的权限,你必须使用chown/chmod命令。
sudo chown -R myname.myname /media/data/

请参考问题中的第7点。那个解决方案并不适合我的需求。 - Christophe
2@Christophe,这个效果是永久的,不需要你反复去做什么。 - psusi
我不知道为什么,但对我来说并非如此,正如我在问题中所说的那样。希望对大多数人来说是这么简单,但可悲的是事实并非如此... - Christophe
5@Christophe,在分区挂载之后才能执行此操作,而不是在之前。 - psusi

我认为关键是要挂载在/mnt/data/media/username/data(我的情况下,用户名=christophe)!!!我不知道为什么它能够工作,但它似乎确实如此...

"工作"的定义:

  1. 使我的数据分区在启动时自动挂载到位置media/christophe/data/mnt/data),并以用户名(即我,christophe)作为所有者。(注意:我尚未处理权限问题(rwxr--r--(用户:rwx,组:r--,其他:r--))。

  2. 每次重新启动:

    • 位置的所有者不是root,而是用户名(即我,christophe)
    • 位置的内容不会被清除,而是持久存在
    • 启动时没有出现"挂载时发生错误..."
    • 解决方案是一次性的,不需要每次都进行操作

解决方案:

  1. /mnt/ 中的解决方案

    • 编辑 /etc/fstab(例如 $ sudo nano /etc/fstab)并添加以下行:

      UUID=your_uuid_value  /mnt/data       ext4    defaults        0       2
      
    • 重新启动前再次检查:

      $ ls -l /mnt/
      total 0
      
    • 重新启动

    • 重新启动后再次检查:

      $ ls -l /mnt/
      total 4
      drwxr--r-- 2 christophe christophe 4096 Dec 26 04:02 data
      $ ls -l /mnt/data/
      total 4
      -rw-rw-r-- 1 christophe christophe 6 Dec 26 04:07 1.txt
      
    • 结论:它确实起作用,但在文件管理器(nautilus、PCManFM等)中不会显示为媒体 [请参见 file_manager.png]

  2. /media/username 中的解决方案

    • 在终端中执行:

      $ sudo mkdir -p /media/username/
      

      或者,在我的情况下:

      $ sudo mkdir -p /media/christophe/
      
    • 重新启动前再次检查:

      $ ls -l /media/
      total 4
      drwxr-xr-x 3 root root 4096 Dec 26 04:25 christophe
      $ ls -l /media/christophe/
      total 0
      
    • 编辑 /etc/fstab(例如 $ sudo nano /etc/fstab)并添加以下行:

      UUID=your_uuid_value  /media/christophe/data       ext4    defaults        0       2
      
    • 重新启动

    • 重新启动后再次检查:

      $ ls -l /media/
      total 4
      drwxr-xr-x 3 root root 4096 Dec 26 04:25 christophe
      $ ls -l /media/christophe/
      total 4
      drwxr--r-- 2 christophe christophe 4096 Dec 26 04:31 data
      $ ls -l /media/christophe/data/
      total 4
      -rw-rw-r-- 1 christophe christophe 6 Dec 26 04:37 2.txt
      
    • 结论:它确实起作用,并且在文件管理器(nautilus、PCManFM等)中确实显示为媒体 [请参见 file_manager.png]file_manager.png

请随意在此帖子中添加任何评论、问题或建议。我在其中浪费了很多时间,希望它能帮助到其他人。特别是,我很想知道为什么它有效...
干杯。

2我尝试了第二个解决方案(在我的情况下是/media/paolo/SDISO),但是我必须在挂载时执行chown paolo:paolo /media/paolo/SDISO,而且只需要执行一次,就像psusi所说的那样。否则,在重新启动和自动挂载后,我的挂载点将被root拥有,并且对于paolo来说是只读的。希望这能帮到你! - user184152
2它不一定要在/media/user,任何位置都可以,例如,在/media/usbkey中挂载它,然后执行sudo chown user:user /media/usbkey,之后重新挂载时,它将归用户所有。 - qed