我做了很多实时系统构建工作,最终涉及使用构建的二进制映像对 USB 驱动器进行映像处理:
dd if=binary.img of=/dev/sdX
sync
USB 驱动器在哪里/dev/sdX
。作为工作流程的一部分,我喜欢打开 Ubuntu 的磁盘实用程序,这样我就可以验证驱动器号并卸载自动安装的任何东西。我还用它来创建额外的分区以保持持久性。
问题是,将映像写入设备后(甚至在同步操作之后),磁盘实用程序不会显示新分区。它只显示可用空间。GParted 和 fdisk 都能看到它。即使关闭并打开磁盘实用程序后,它仍然只显示可用空间。
如果我点击“安全删除”并拔下并重新插入 USB 驱动器,磁盘工具将然后查看分区。
为什么我需要移除并重新插入驱动器才能让磁盘实用程序查看其上的分区?我可以强制磁盘实用程序更新其信息而无需执行此操作吗?
(在 Ubuntu 11.10 下使用磁盘实用程序 3.0.2。)
答案1
内核可能不知道这个变化。在这种情况下,一个有用的工具是partprobe
。只需用 调用它sudo partprobe
。该软件将测试所有驱动器,如果发现新分区,它会通知内核。成功运行后,您将看到您的映像而不是可用空间。
答案2
我注意到在某些情况下,如果不重新启动系统,磁盘信息就不会改变。但正如你所说,如果它显示在 gparted 和 fdisk 中,那么就没有问题了。但我建议你重新启动系统,看看是否会发生同样的事情。