我怎样才能将“/home”放在自己的分区上,并在发行版升级后使用它?

我怎样才能将“/home”放在自己的分区上,并在发行版升级后使用它?

当前:20.04,/home 在其自己的分区上。

目标:在‘/’上安装 22.04,然后切换(当时新的)‘home’子目录,以使用单独分区的 /home。

我关心的是用户名和 ID 号、组名和 ID 号……这意味着,安装用户名的新“home”子目录很可能是 ID 号 1000。但在分区 /home 上,已经有一个重要的用户名,ID 号为 1000。

保持分区 /home 完整至关重要。我怎样才能将其合并到 22.04 的全新安装中?谢谢。

答案1

对于安装:

保留cronbatch作业at。查看/var/spool/

在目录树中保留本地修改的文件的副本/etc

保留本地安装的应用程序。保存配置文件,准备重新安装当前版本的应用程序。

apt changelog packagename是你的朋友。

/home安装后外面的一切都将被摧毁。

为了 /home

您可以告诉安装程序(“其他”选项?)将/home其放在您拥有的位置,然后取消选中“格式”列中的复选框。验证。请勿格式化 /home

对于 UID - 保留 的副本/etc/{passwd,shadow,group,gshadow}。了解这些文件!阅读man -a passwd;man shadow group getent

让安装程序创建一个temporary用户 ID、UID 1000、homedir /home/temporary

安装后,以 身份登录temporary

首先,在一个窗口中sudo bash。这是您的紧急调查和恢复窗口。

在另一个窗口中,sudo bash

制作另一个单独的备份副本/etc/{passwd,shadow,group,gshadow}

用你的原来的复制以恢复您的组和用户 ID。不要盲目复制旧文件,请仔细考虑每个条目。

请注意,(passwdshadow)和(groupgshadow)条目应该成对更新,或者同时更新,或者都不更新。

用来getent检查你的工作。例如getent passwd special

仅经过测试:

  • 特殊用户登录?
  • 特殊用户还能特殊吗?
  • 以您的管理员用户身份登录?
  • 管理员还可以吗sudo
  • ...

您可以注销吗?然后以管理员帐户登录,并删除该temporary用户。阅读man deluser

相关内容