在 openbsd 中交换分区

在 openbsd 中交换分区

在常规 openbsd 安装后,我有以下分区方案:

# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/sd0a      986M    111M    826M    12%    /
/dev/sd0k     46.4G   20.0K   44.1G     1%    /home
/dev/sd0d      3.9G    6.0K    3.7G     1%    /tmp
/dev/sd0f     11.2G    1.3G    9.4G    12%    /usr
/dev/sd0g      986M    2.0K    937M     1%    /usr/X11R6
/dev/sd0h     15.7G    151M   14.7G     1%    /usr/local
/dev/sd0j      5.8G    2.0K    5.5G     1%    /usr/obj
/dev/sd0i      2.9G    2.0K    2.8G     1%    /usr/src
/dev/sd0e     12.8G    7.8M   12.2G     1%    /var

我想要大一点的/var/和小一点的/home

我可以交换挂载点吗?挂载/dev/sda0e/home和?/dev/sd0k/var

答案1

如图所示,拥有/boot一个单独的分区并且可能安装一个单独的磁盘/home比一堆小分区更有意义。

除非您对设置有非常特殊的原因;我认为最好只使用一个 / 分区,将所有其他分区保留为子文件夹。

您是否刚刚安装,并且还没有进行太多自定义?-> 如果是:重新安装。

“交换”分区的最简单方法是:将数据从任一位置复制到临时位置并删除原始数据,然后 2 次“将内容移动到新位置”。最后当然是:更改 fstab!

答案2

如果您按原样交换(不复制文件),那么您的服务将无法工作,您将无法登录到您的主目录。在 fstab 中交换分区后,您需要重新启动进入单用户模式并移动文件夹。

启动进入单用户模式后(boot -s):

mount /home
mount /var
tar czf /var/home.tgz -C /home .         # copy files from /home to /var/home.tgz
rm -rf /home/*                           # clear out old home
tar cf - -C /var . | tar xpf - -C /home  # copy files from /var to /home
rm -rf /var/*                            # clear out old var
tar xpzf /home/home.tgz -C /var          # extract home.tgz to new home
rm /home/home.tgz                        # remove home.tgz
reboot

相关内容