AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 792503
Accepted
preferred_anon
preferred_anon
Asked: 2025-03-15 21:52:01 +0800 CST2025-03-15 21:52:01 +0800 CST 2025-03-15 21:52:01 +0800 CST

如果通过 USB 安装的根分区断开连接会发生什么情况?

  • 772

我有一台没有内置硬盘的笔记本电脑。为了充分利用它,我考虑将根分区放在外部介质上,通过 USB。我看不出这有什么不可行的原因,但我想知道如果我意外断开并重新连接 USB 会发生什么。

显然,一般情况下可以自动重新连接设备,但如果根分区断开连接,这仍然可行吗?我很确定,如果根分区消失,正在运行的系统不会立即死机,但如果重新安装变得不可能,我也不会感到惊讶。

automounting
  • 1 1 个回答
  • 33 Views

1 个回答

  • Voted
  1. Best Answer
    user10489
    2025-03-16T01:24:14+08:002025-03-16T01:24:14+08:00

    通常,如果拔出已安装的 USB,已安装的文件系统将变得不可读且不可写。如果 RAM 中有未写入的脏页,USB 上的文件系统状态也可能损坏。(fsck 可能会修复此问题,但也可能会导致数据丢失。)

    在此状态下重新插入 USB 时,它将映射到新设备名称,无法重新连接旧安装。这里唯一的解决方案是卸载损坏的安装并从新设备名称重新安装。(旧设备名称可能会在卸载后立即消失,使该名称可用于下一个插入的 USB。)

    但是,由于这是根文件系统,您无法卸载并重新安装它(因为它正在使用中),因此这种情况无法恢复。这当然是致命的,但不是立即的。

    仍然缓存在内存中的内容在一段时间内仍然可以读取,直到它们的缓存页面被逐出,然后也将不可读。

    您将无法运行新程序(尚未缓存在内存中)。甚至它们所在的目录也变得不可读,因此几乎所有操作都会显示“未找到命令”。

    需要内存中不存在的页面的现有程序可能会崩溃并突然死亡,没有任何警告,甚至可能没有明显的错误。

    有些东西(比如可能是你的 shell)可能永远不会崩溃,因为它们在内存中并且正在使用中,但由于其他一切都会被破坏,因此它们将无法做太多事情。

    如果您使用 GUI,GUI 的某些部分可能会因为发现缺少所需页面而死机,包括保存您的 shell 的终端窗口,并且当您尝试在窗口中键入内容时它们可能会消失,或者整个 GUI 最终可能崩溃,让您进入文本终端(由于所有内容都已损坏,您将无法从该终端登录)。

    在发生故障的根挂载上打开的关键系统服务即使没有崩溃也无法正常运行,因此情况会逐渐恶化。

    如果您碰巧打开了根 shell,您可能能够将恢复的 USB 重新挂载到现有的损坏的根挂载之上,但这很可能不会被允许,而且即使被允许,它也无法修复从已经半崩溃的旧挂载运行的程序,并且一些使用旧挂载运行的程序将看不到新的挂载,并且仍然会卡住。

    当您最后剩下的 shell 崩溃(没有任何错误或记录错误的方式)时,没有什么能够替代它,因此它可能看起来只是变得没有响应并且似乎被锁定,而实际上它只是默默地死了。

    这是一种不可恢复的状态,随着你的不断尝试,情况会变得越来越糟,直到一切都崩溃并且你重新启动。

    您甚至无法关闭或运行重启命令,因为这会触发服务尝试干净地关闭(尽管为时已晚)。

    唯一明智的恢复方法是重新启动。这将需要硬重启,如果您幸运的话,可以使用命令完成,reboot -f -f但很可能无法使用,您必须通过按住电源按钮直到关闭来手动执行等效操作。(如果您启用了 sysreq 键,您可以执行等效操作,AltSysRqb该操作始终有效(如果已启用)。)

    • 2

相关问题

  • 无法在 macOS Mojave 下编辑 auto_master [关闭]

  • systemd 自动挂载文件系统作为读写,没有按预期工作(只读)

  • parted 是否自动挂载新分区?

  • 通过 Systemd 自动挂载时 Cryptsetup 设备超时

  • 在引导时绕过自动挂载

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve