我正在考虑跳槽 Linux 发行版,并想知道是否有办法保留我的文件、grub 和设备安装当我更改发行版时。
这样我就可以继续在系统上工作,而不必一次又一次备份我的文件系统。我搜索并找到了一些答案,但也有其他答案与它们相矛盾。
PS:我正在考虑从带有 xfce 的 manjaro 和带有 kde 的 debian 开始。我希望 /home 是通用的。
答案1
您可以/home
跨系统共享,但有一些注意事项。中的文件/home
不依赖于发行版本身。但是,某些程序以取决于版本的格式存储文件,并且无法在版本之间切换:运行程序 X 的版本 N+1 后,运行版本 N 时可能会遇到问题。这可能是个问题如果您切换到包含某些程序较旧软件包的发行版。大多数程序可以应对并忽略任何未知选项,但少数程序拒绝启动或废弃配置。常见的罪魁祸首是 Gnome 桌面环境以及 Firefox 和 Chromium/Chrome Web 浏览器。
原则上您可以在 Linux 发行版之间共享引导加载程序。然而,每个发行版都有自己的引导加载程序管理系统。如果你想共享,你必须绕过分发引导加载程序管理并手动配置一些东西。让每个发行版管理自己的发行版会更容易。
- 在除一个发行版之外的所有发行版中,保持
/boot
与 相同的分区/
,并在该发行版的分区上安装 Grub。 - 在一种发行版中,将 Grub 安装在磁盘的引导扇区上,并链式加载所有其他 Grub 安装。如果您的计算机使用 UEFI 启动,您可以使用它作为启动时选择操作系统的机制,而不是 Grub。
/dev
是内存中的文件系统。共享甚至不适用。您所说的“设备安装”并非来自/dev
,而是来自/etc/fstab
桌面环境中某些配置中的条目。
即使只是玩玩,多重启动也不是一个很好的体验。我强烈建议不要在您的主计算机上执行此操作。如果您愿意,可以在“播放”计算机上执行此操作,但不要指望在那里维护任何配置,并通过网络访问您的文件。要使用多个发行版,请改用虚拟机。二十年前,当虚拟机还不是一种选择时,我们就采用了多重引导。使用一个发行版作为主机;选择一个稳定的版本,而不是滚动版本,因为那是您绝对不想破坏的版本。将其他人安装在他们自己的虚拟机中。
答案2
这个答案很大程度上取决于不同的发行版和它们处理/etc/fstab
数据的特性,以及它们如何与/boot
(例如 grub/LILO/etc.)交互,假设它们是唯一控制该/boot
目录的…问题是当你想使用 GRUB 来选择发行版时,你必须控制它,并知道你必须做什么为了不让下一个 Debian 内核升级覆盖您的 Manjaro 配置,考虑到您的声明/请求,这将是主要挑战“保留……我的幼虫……”
如果我要这样做,我将选择我的“主”发行版,并用它进行初始安装,并且通常/boot
在单独的分区上有一个,以及/home
其他“设备安装座”
然后我将安装辅助操作系统,但在这里我会小心地也有一个单独的操作系统/boot
,但确保它与主操作系统分开,并且您不会在主发行版上破坏/安装 grub /boot
,并且您指向/home
主要发行版/home
,但确保不要格式化它。
安装辅助发行版后,我将在主发行版中启动,我将添加所需的安装/etc/fstab
以安装辅助发行版/boot
并/
在 ie /secondary/root
&下/secondary/boot
。然后,我将确保我的用户 ID 已同步以/home
供使用,将/secondary/boot/
内核和 initramfs 映像复制到/boot
,将/secondary/etc/grub.d/*
类型文件与/etc/grub.d/*
(取决于发行版)合并以包含辅助启动内核。
唯一的问题是,当您更新辅助发行版的内核时,您必须同步到主要/主发行版的/boot
.
更“干净”的解决方案是拥有两个独立的 HDD/SSD,您可以从 BIOS/UEFI 中选择启动磁盘,每个发行版都位于自己的单独磁盘上,只需/home
与同步的 UID/GID 共享。
祝一切顺利,这将是一个学习曲线和有趣的挑战。 ;)