![通过 USB 挂载将 Linux 分区从 1 个移动到多个](https://linux22.com/image/1254106/%E9%80%9A%E8%BF%87%20USB%20%E6%8C%82%E8%BD%BD%E5%B0%86%20Linux%20%E5%88%86%E5%8C%BA%E4%BB%8E%201%20%E4%B8%AA%E7%A7%BB%E5%8A%A8%E5%88%B0%E5%A4%9A%E4%B8%AA.png)
我们有使用 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 无法很好地支持这一点——我认为你最好的选择是文件系统)。