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
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1107651
Accepted
MarianoM
MarianoM
Asked: 2019-01-08 00:42:11 +0800 CST2019-01-08 00:42:11 +0800 CST 2019-01-08 00:42:11 +0800 CST

Linux安装在U盘上,关机时数据会丢失吗?

  • 772

我正在观察该sync命令的使用,并且我已阅读该命令确保将内存中的任何内容写入磁盘。

当我考虑在可移动磁盘(USB)上安装 Ubuntu 时,我想知道是否有必要执行此命令。

让我担心的是,在关闭计算机时,如果仍在写入数据,它们最终会因为系统关闭而丢失。

是否需要sync在关机或重启系统前运行?

有人对此进行更多解释吗?

sync shutdown usb
  • 2 2 个回答
  • 1472 Views

2 个回答

  • Voted
  1. Best Answer
    Sergiy Kolodyazhnyy
    2019-01-08T00:48:06+08:002019-01-08T00:48:06+08:00

    在意外关机或系统崩溃期间,数据可能会丢失 - 当操作系统实际上无法将数据从内存刷新到磁盘时。在正常关机或重新启动期间,操作系统仍处于控制之中,因此它会将数据写入磁盘。

    换句话说,正常关机/重启是可以的。还有一种称为halt状态的东西 - 机器仍在运行,但操作系统已经经历了关闭过程并放弃了对硬件的控制。在这种情况下,关闭机器电源也可以。不正常的是异常断电和关机。

    • 7
  2. Simon Richter
    2019-01-08T04:11:06+08:002019-01-08T04:11:06+08:00

    sync在磁盘被卸载(或以只读方式重新安装,在根文件系统的情况下)之后,正常关闭包括最后的 a 。通常,这应该什么都不做,因为文件系统已经在 上同步umount,所以应该在“卸载文件系统”阶段写入数据。

    因为当服务器无法访问时,网络文件系统可能会花费任意时间来卸载,某些 init 系统会在 上实现超时umount,并且如果磁盘内部的挂载点仍然挂载,则无法卸载磁盘,这可能会导致级联失败,无法干净地卸载文件系统,在这种情况下,到达关机点时可能仍有未写入的数据。然后,最终同步确保即使文件系统没有完全卸载,也不会丢失任何数据。下次启动时的文件系统检查和/或日志重播(取决于文件系统)应该会清除它。

    最终同步运行时(理想情况下)不存在读写挂载,并且没有其他程序仍在运行,因此在此之后无法生成新的写入请求。此时,持有已删除文件的打开文件句柄的僵尸进程也应该已被清除。

    磁盘可以实现自己的缓存,这应该是完全透明的,但 Linux 通常会向驱动器发送关闭命令并等待报告完成;驱动器固件通常足够聪明,可以在此之前完成所有挂起的写入。

    对于 USB 设备,SCSI 命令被包装在 USB 数据包中,因此同样的顺序适用于它们,但是由于 USB 比 SCSI 慢很多,内核缓存通常会增长很多,所以sync这里可能需要几分钟才能完成,但是内核将尽职尽责地等待。

    • 2

相关问题

  • 如何从命令行重置 USB 设备?

  • 如何使文件夹与外部 USB 硬盘保持同步?

  • 按下电源按钮时如何关闭计算机?

  • 如何与我的 iPhone 3G 同步音乐?[关闭]

  • 保持多个工作站同步

Sidebar

Stats

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

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve