由于 Ext3 的目录限制为 32000 个,因此我想将文件系统从 Ext3 转换为 Ext4。但是当我想卸载驱动器时,我收到此错误:
umount: /: device is busy
umount: /: device is busy
我尝试使用以下命令来了解是什么导致驱动器繁忙:
root@cl-t159-101cl [~]# ps auxw|grep 538
root 8426 0.0 0.0 4888 700 pts/2 S+ 10:04 0:00 grep 538
实际上是我的远程会话(我使用 SSH 连接到我的服务器)不允许卸载驱动器。
我还尝试了命令 fuser 来查看正在使用该驱动器的进程:
root@cl-t159-101cl [~]# fuser -mu /dev/sda5
/dev/sda5: 1rce(root) 2rc(root) 3rc(root) 4rc(root) 5rc(root) 6rc(root) 7rc(root) 8rc(root) 9rc(root) 10rc(root) 11rc(root) 12rc(root) 13rc(root) 14rc(root) 15rc(root) 16rc(root) 17rc(root) 18rc(root) 19rc(root) 25rc(root) 26rc(root) 27rc(root) 28rc(root) 29rc(root) 166rc(root) 167rc(root) 168rc(root) 169rc(root) 172rc(root) 174rc(root) 252rc(root) 253rc(root) 254rc(root) 255rc(root) 256rc(root) 257rc(root) 258rc(root) 259rc(root) 420rc(root) 466rc(root) 467rc(root) 468rc(root) 469rc(root) 470rc(root) 476rc(root) 477rc(root) 478rc(root) 479rc(root) 480rc(root) 481rc(root) 482rc(root) 507rc(root) 540rce(root) 1136rc(root) 1504rc(root) 1523rc(root) 1524rc(root) 1525rc(root) 1526rc(root) 1527rc(root) 1548rc(root) 1550rc(root) 1790rc(root) 1870rc(root) 1886rc(root) 1887rc(root) 1889rc(root) 1894rc(root) 1900rc(root) 1902rc(root) 1903rc(root) 1904rc(root) 1910rc(root) 1932rce(root) 1940rce(root) 1941rce(root) 2357rce(root) 2360rce(root) 2374rce(root) 2422rce(root) 2437rce(root) 2461rce(mysql) 2574rce(mailnull) 2605rce(root) 2607rce(root) 2608rce(root) 2623rce(dovecot) 2624rce(dovecot) 2625rce(dovecot) 2626rce(dovecot) 2632rce(root) 2633rce(root) 2666rce(root) 2668rce(root) 2695rce(root) 2697rce(root) 2710rce(root) 2714rce(root) 2941rce(root) 2980rce(root) 2992rce(root) 2999rce(root) 3001rce(root) 3357rce(root) 3360rce(root) 3361rce(root) 3362rce(root) 3363rce(root) 3366rce(root) 3368rce(root) 3511rce(named) 3686rce(root) 3714rce(r) 3715rce(r) 5080rce(nobody) 5771rce(nobody) 5929rce(nobody) 5936rce(nobody) 6060rce(root) 6136rce(r) 6147rce(r) 6530rce(nobody) 6540rce(nobody) 6944rce(nobody) 6984rce(nobody) 6995rce(nobody) 7254rce(nobody) 7534rce(nobody) 7535rce(nobody) 7542rce(nobody) 7700rce(nobody) 7739rce(nobody) 7748rce(nobody) 7751rce(nobody) 7773rce(nobody) 7793rce(nobody) 7798rce(nobody) 7799rce(nobody) 7801rce(nobody) 7900rce(nobody) 7929rce(nobody) 8172rce(nobody) 8174rce(nobody) 8178rce(nobody) 8201rce(nobody) 8308rce(root) 8355rce(root) 8446rce(nobody) 8447rce(nobody) 8451rce(nobody) 8455rce(nobody) 8459rce(nobody) 8471rce(nobody) 8473rce(nobody) 8474rce(nobody) 8478rce(nobody) 8480rce(nobody) 8481rce(nobody) 8535rce(nobody) 8541rce(nobody) 8555rce(nobody) 8557rce(nobody) 8559rce(nobody) 8563rce(nobody) 8582rce(nobody) 8583rce(nobody) 8584rce(nobody) 8585rce(nobody) 8589rce(nobody) 8591rce(nobody) 8675rce(nobody) 8690rce(nobody) 8691rce(nobody) 8721rce(nobody) 8752rce(nobody) 8754rce(nobody) 8756rce(nobody) 8777rce(nobody) 8784rce(nobody) 8785rce(nobody) 8786rce(nobody) 8787rce(nobody) 8790rce(nobody) 8796rce(nobody) 9076rce(nobody) 9085rce(nobody) 9101rce(nobody) 9103rce(nobody) 9154rce(nobody) 9160rce(nobody) 9370rce(nobody) 9395rce(nobody) 9414rce(nobody) 9416rce(nobody) 9418rce(nobody) 9420rce(nobody) 9439rce(nobody) 9440rce(nobody) 9441rce(nobody) 9444rce(nobody) 9446rce(nobody) 9448rce(nobody) 9449rce(nobody) 9450rce(nobody) 9451rce(nobody) 9452rce(nobody) 9454rce(nobody) 9604rce(nobody) 9605rce(nobody) 9606rce(nobody) 9607rce(nobody) 9624rce(nobody) 9625rce(nobody) 9628rce(nobody) 9705rce(nobody) 9714rce(nobody) 9715rce(nobody) 9719rce(nobody) 9721rce(nobody) 9722rce(nobody) 9728rce(nobody) 9730rce(nobody) 9790rce(nobody) 9876rce(nobody) 9877rce(nobody) 9878rce(nobody) 9882rce(nobody) 9883rce(nobody) 9884rce(nobody) 9886rce(nobody) 9906rce(nobody) 9907rce(nobody) 9909rce(nobody) 9910rce(nobody) 9912rce(nobody) 9915rce(nobody) 9927rce(nobody) 9928rce(nobody) 9929rce(nobody) 9930rce(nobody) 9931rce(nobody) 9933rce(nobody) 9934rce(nobody) 9936rce(nobody) 9939rce(nobody) 9940rce(nobody) 9941rce(nobody) 9942rce(nobody) 10014rce(nobody) 10016rce(nobody) 10018rce(nobody) 10019rce(nobody) 10020rce(nobody) 10021rce(nobody) 10026rce(nobody) 10028rce(nobody) 10030rce(nobody) 10031rce(nobody) 10034rce(nobody) 10039rce(nobody) 10051rce(nobody) 10052rce(nobody) 10054rce(nobody) 10056rce(nobody) 10058rce(nobody) 10060rce(nobody) 10062rce(nobody) 10064rce(nobody) 10066rce(nobody) 10067rce(nobody) 10070rce(nobody) 10071rce(nobody) 10072rce(nobody) 10073rce(nobody) 10074rce(nobody) 10308rce(nobody) 10311rce(nobody) 10821rce(nobody) 11011rce(nobody)
这个问题有解决办法吗?系统启动时没有进程启动时,是否可以转换文件系统?
答案1
更改根卷使用的文件系统可能是一个复杂的过程(因此在尝试之前请确保您拥有最新的测试备份)。
通常的建议是从单独的启动中执行此类操作,即从实时 CD 启动,这样您就不会使用即将更改其根文件系统的操作系统。正如您所说,这是一台远程机器,这可能是不可能的。
您可能可以制作一个自定义的 initrd 映像,在下次启动时为您执行更改,但这不是初学者可以完成的过程,如果您没有物理访问权限来解决问题,如果出现问题,很容易导致您的机器无法使用(如果您有物理访问权限,那么使用 live-CD 路线更安全+更容易)。在 initrd 处于活动状态的启动过程中,您的正常根目录未安装,因此您可以以通常会阻止的方式对其进行修改,但除非您有 KVMoIP 设置(这通常需要额外付费,因此如果您不知道是否有可用的设置,那么您就没有可用的设置),否则您也无法远程与机器交互来处理过程中的任何错误。
这是什么类型的机器?如果它是由 linode 等某个地方托管的 VM,您可以通过创建新的启动映像并让其访问旧映像进行修改来进行并行启动(如使用实时 CD)。根据机器上的内容,您可以更新备份,要求主机使用备用文件系统选项重建,并将备份恢复到此全新安装。这比尝试制作一个可以进行转换的 initrd 要安全得多。如果您没有可用于此目的的良好备份安排,现在是时候制作一个了。
为什么每个目录 32,000 个对象的限制对你来说是个问题?是你自己的代码还是某个实用程序创建了这么多对象?解决这个问题可能比摆弄当前文件系统更容易。这个问题可能会对你有帮助。
答案2
最简单的解决方案是从可启动 iso 运行并从那里进行更改,但是“32000 目录限制” - FFS!