多个 Linux 发行版共用一个 /home 分区

多个 Linux 发行版共用一个 /home 分区

我在一个分区中安装了 Ubuntu,在另一个分区中安装了 Debian,现在我打算安装 Backtrack 和 SUSE。Debian 将单独的分区安装为其主安装点,而 Ubuntu 在其文件系统中包含自己的主文件夹。

现在,我希望我的主分区能够被我当前拥有的或将来可能拥有的所有其他发行版共享。

我怎样才能做到这一点?

PS:我在所有发行版上都有相同的用户名和昵称

答案1

Ubuntu 的图形安装程序不会自动为 /home 创建单独的分区。这是真的。不过,建议这样做,如果您选择手动分区,也可以这样做。但即使您没有这样做,您仍然可以修复它。

但是,有几件事需要考虑。首先,确保所有发行版都可以使用主分区上使用的文件系统。这通常不是问题,但谨慎一点总比后悔好。其次,这更重要;除非您知道自己在做什么,否则不要在发行版之间使用相同的主目录。发行版可能安装有不同版本的软件,这意味着它们的设置可能不相同。这通常不应该是个问题,因为应用程序应该可以正确处理不同的版本,但并非所有应用程序都能做到这一点。不过,主目录的名称与您的用户名不同是完全没问题的,所以这不是问题。

如果我没看错的话,你应该有两个分区用于 Ubuntu(交换分区和根分区)和几个用于 Debian 的分区。然后你要做的第一件事就是在 Ubuntu 中挂载 Debian 主目录,并通过将其添加到 /etc/fstab 来确保它在启动时挂载。关于如何做到这一点有很多文档,所以我就不多说了。

如果您将 Debian 主分区挂载在 /home 上,那么它将隐藏 Ubuntu 的 /home 目录,因此请先将其挂载到其他地方,例如 /mnt。现在您必须做出一些决定。如果您愿意,您可以尝试对所有发行版使用相同的主目录,或者您可以为每个发行版设置不同的主目录。例如,您可以在 /home 中为每个发行版创建一个单独的文件夹,如下所示:

  • /home/ubuntu/用户名
  • /home/debian/用户名
  • /home/other_distro/用户名

我认为这是最安全的解决方案。我假设您的主目录未加密。如果是,那么事情就会变得复杂,尽管主要步骤是相似的。执行此操作时,您可能应该退出主帐户,因此请创建一个新用户,将其设为管理员并以该用户身份登录。

您必须配置所有发行版上的所有当前用户,以使用新位置作为主目录。您还应配置发行版,以便为您创建的新用户默认使用这些路径。

如果您已将主分区挂载在 /mnt 上,则需要创建 /home/ubuntu 和 /home/debian。然后,将 /home/username 复制到 /mnt/ubuntu/username,并将 /mnt/username 移动到 /mnt/debian/username(对于 Debian 用户)。

现在,Ubuntu 和 Debian 用户主目录位于同一分区,但位于不同的主目录中。如果您已将 Debian 和 Ubuntu 配置为在启动时将该分区挂载到 /home 中,并将用户更改为使用新路径作为主目录,那么一切都应该没问题。当您打算安装新发行版时,您首先要创建 /home/distroname/ 并照常安装,但使用主分区并将其配置为使用 /home/distroname 作为新用户主目录的默认位置。如果您这样做,请确保不是对其进行格式化,否则您将丢失 Debian 和 Ubuntu 中的数据:)

如果您想重复使用单个主目录,请确保您知道自己在做什么。您需要为各个发行版中的用户设置相同的 uid。否则权限会变得混乱。

祝你好运并做好备份:)

答案2

这是一个迟来的答案,但对于其他试图在发行版之间共享信息的人来说可能很有用。

如上所述,不同版本的应用程序共享相同的配置文件存在问题/home/user/

解决部分问题的简单解决方案(即共享主文件夹中的大部分数据)是符号链接文件夹,例如/home/user/Documents。我的主文件夹如下所示:

drwxr-xr-x  3 mike mike 4096 May  2 11:48 Desktop/
drwxr-xr-x  2 mike mike 4096 May  1 21:18 Downloads/
lrwxrwxrwx  1 mike mike   34 Apr 27 12:36 Documents -> /mnt/home/mike/Documents/
lrwxrwxrwx  1 mike mike   33 Apr 27 12:40 Pictures -> /mnt/home/mike/Pictures/
lrwxrwxrwx  1 mike mike   32 Apr 27 12:38 Public -> /mnt/home/mike/Public/
lrwxrwxrwx  1 mike mike   31 Apr 27 12:39 Videos -> /mnt/home/mike/Videos/
lrwxrwxrwx  1 mike mike   34 Apr 27 12:40 workspace -> /mnt/home/mike/workspace/

从上图可以看出,DesktopDownload文件夹位于本地主分区Documents,而Pictures等则链接到共享分区。

以下是如何设置符号链接(在此示例中为文件Documents夹):

$ cd ~
$ mkdir old-folders
$ mv Documents old-folders/
$ ln -s /mnt/home/mike/Documents/ Documents

上述操作将当前Documents文件夹移动到old-folders共享的 Documents 文件夹并设置指向该文件夹的符号链接。我使用这个方案已经很长时间了,到目前为止没有遇到任何问题。

您可能会发现垃圾桶存在问题,如果是这样,请查看此帖子:如何使用 gnome 垃圾清理不同分区中的文件?

答案3

从技术上来说,不同发行版之间可以共享/home目录(请参阅回答)这样做不是一个好主意

应用程序的设置可能因程序版本的不同而具有不同的格式。如果因此导致任何不兼容或不同步,我们将完全无法找到原因。甚至不建议在同一发行版的不同版本中这样做(例如参见这里)。

因此,建议从用户主目录的子目录中共享个人数据文件仅有的(例如通过创建符号链接到您选择的目录):

答案4

我采用了 /ect/fstab 方法,以下是我采取的步骤。

我创建了一个单独的 100+Gb 分区来包含我的所有共享数据,在其中我创建了大多数操作系统共有的 7 个文件夹

Documents, Downloads, Music, Pictures, Public, Templates, Videos
  1. 要查找UUID包含共享数据文件夹的分区,请执行以下操作:

    sudo blkid
    
  2. 要自动挂载您需要编辑的共享数据分区/ect/fstab,请执行以下操作:(geditvi或您最喜欢的文本编辑器替换)

    sudo gedit /etc/fstab
    
  3. 将分区信息添加到/ect/fstab,(对我来说,它是以下内容)。

    #/dev/sda4
    UUID=2dc891df-86aa-4d2b-a7aa-bc1620ef8024   /media/DATA ext2    defaults,rw,errors=remount-ro   0   0
    
    /media/DATA/mitchbw/Documents/  /home/mitchbw/Documents bind    defaults,noatime,bind   0   0
    /media/DATA/mitchbw/Downloads/  /home/mitchbw/Downloads bind    defaults,noatime,bind   0   0
    /media/DATA/mitchbw/Music/  /home/mitchbw/Music bind    defaults,noatime,bind   0   0
    /media/DATA/mitchbw/Pictures/   /home/mitchbw/Pictures  bind    defaults,noatime,bind   0   0
    /media/DATA/mitchbw/Public/ /home/mitchbw/Public    bind    defaults,noatime,bind   0   0
    /media/DATA/mitchbw/Templates/  /home/mitchbw/Templates bind    defaults,noatime,bind   0   0
    /media/DATA/mitchbw/Videos/ /home/mitchbw/Videos    bind    defaults,noatime,bind   0   0
    

注意:请注意bind文件系统类型和选项。

或者,您可以修改noatime挂载选项(之后bind和之前0 0):

noatime,rw,errors=remount-ro,bind

如果将这些添加到安装选项//home数据文件夹,这将加快文件访问速度,并通过减少磁盘 I/O 延长磁盘驱动器的使用寿命

  1. 要测试您修改的fstab,请执行:

    sudo mount -a
    

并使用

    mount

更多相关信息noatime/etc/fstab选项可在此处找到:

https://wiki.archlinux.org/index.php/fstab

http://www.openquery.com.au/blog/hint-day-noatime-relatime-fstab

相关内容