通过 USB 挂载将 Linux 分区从 1 个移动到多个

通过 USB 挂载将 Linux 分区从 1 个移动到多个

我们有使用 Compact Flash 进行存储的设备。它们工作正常,但我们最近开始使用工业级 CF 卡。

我们遇到的主要问题之一是闪存卡损坏。目前,这些闪存卡运行 Debian,所有内容都位于单个分区中。我们希望在新的工业 CF 卡上有多个分区,以帮助避免一些损坏问题。

我启动了设备,并连接了 USB CF 读卡器。然后我使用 fdisk 在 USB 读卡器中对 CF 卡进行分区。

我如何将数据移动到这些分区以使其正常工作?我为以下每个目录都有一个分区:

  • /lib
  • /var
  • /根
  • /启动
  • /tmp
  • /家
  • /ETC
  • /
  • 交换空间

我想我不能只使用 rsync - 我是否需要将第二个 CF 读取器与 CF 卡的副本连接起来,以便它不处于活动状态并处于使用状态 - 然后从第一个读取器复制到第二个读取器?系统如何知道在哪里找到它的文件?

我知道我必须更改 fstab,但它位于 /etc 中,而 /etc 位于单独的分区中...如果找不到 /etc,它将如何找到 fstab 文件?那么 grub 呢?

我很茫然,也许只是因为我身体不舒服,或者我只是在这里缺少了一点逻辑......

非常感谢您的帮助,这有点紧急,因为我们现有的库存已接近尾声,而且我们不想购买除了这些工业卡以外的任何东西,但需要让它与分区一起工作。

答案1

您无法将/lib/etc移出根分区。您也许能够将选定的部分移出,但一般来说,被保留在 之外的程序/usr及其依赖项(例如 中的库/lib和 中的配置文件/etc)往往是在系统启动初期需要的,之后/usr才能挂载。

对于/root/var/home和,您只需使用/usr/boot数据移动到新分区mv,然后将适当的条目添加到/etc/fstab。我建议从救援系统执行此操作;尤其是对于/var,在实时系统上移动文件需要一种“如果您需要询问您没有它”的经验。

对于/tmp,使其完全存在于内存中(即虚拟内存,因此从某种意义上说,如果由于缺少 RAM 而有必要,它的存储后端就是交换空间)。在 中添加以下行/etc/fstab

tmpfs /tmp tmpfs mode=1777

我想知道你是否真的走在正确的方向上。我只是不明白创建多个分区如何有助于避免损坏。也许你需要的是某种形式的 RAID(这要求设备有多个 CF 读取器,除非你愿意牺牲大量性能和磁盘空间来获得检测损坏的机会),或者一个具有某种损坏检测功能的文件系统(Linux 无法很好地支持这一点——我认为你最好的选择是文件系统)。

相关内容