以前,只有一个/dev/sda1显示出来,但今天我看到了三个,并且当我尝试在其中任何一个上运行zerofree时,提示设备已以读写方式挂载。 我也按照这里的一些指示尝试停止了一些服务并尝试重新挂载,但是没有成功。
它仍然显示挂载点忙
我不确定这是否是最近更新引起的? 我还试过卸载VMware客户机附加组件,但没有成功
有什么建议吗?
它仍然显示挂载点忙
我不确定这是否是最近更新引起的? 我还试过卸载VMware客户机附加组件,但没有成功
有什么建议吗?
首先安装 zerofree:
sudo apt-get install zerofree
创建0字节文件以释放空间(删除所有不需要的文件并清空回收站)
重新启动到GRUB菜单(在Ubuntu启动时按Esc键)
Advanced options for Ubuntu > Recovery Mode (choose highest version number)
df
zerofree
。zerofree /dev/sda1
如果您从zerofree收到像/dev/sda1
被挂载为rw的错误,则需要将其以只读方式挂载才能继续。
要将/dev/sda1
或您想要的分区以只读方式挂载以便使用zerofree
:
注意1:您应该相对快速地执行以下步骤,以便在服务和套接字重新开始使用并开始向磁盘写入之前将驱动器挂载为ro
。否则,您可能需要再次执行systemctl
步骤,以确保停止向磁盘写入。
注意2:(在以下步骤失败之前,请跳过阅读此内容)。根据您的系统,除了systemd-journald
之外,您可能还有其他服务和套接字仍在向磁盘写入。如果下面的步骤不起作用,请尝试查看在运行这些步骤后仍在向磁盘写入的内容,然后以同样的方式停止它们。
systemctl --type=service
systemctl --type=socket
更新:用户@Kevin提出了一个很好的建议,即在服务和套接字重新启用时,可以使用一行命令来执行这些步骤(请参见下文):
systemctl stop systemd-journal* \
&& sudo swapoff -a && mount -n -o remount,ro -t ext2 /dev/sda1 / \
&& zerofree -v /dev/sda1
首先,停止所有正在向磁盘写入的进程,以免出现mount /: mount busy
错误。
systemctl stop systemd-journald.socket
systemctl stop systemd-journald.service
swapon -s
sudo swapoff -a
dev/sda1
挂载为只读模式。(你的文件系统类型可能与ext2
不同。要找到文件系统,请运行df -T
)mount -n -o remount,ro -t ext2 /dev/sda1 /
zerofree
。zerofree -v /dev/sda1
zerofree
完成后,关闭 Ubuntu。halt
VBoxManage.exe modifymedium disk "C:\path\to\disk.vdi" --compact
modifyhd
或modifyvdi
而不是modifymedium
)。 - Emmanuel N Kkillall dhclient
对我来说起到了作用。 - panta82systemctl stop systemd-journal* && swapon -s && sudo swapoff -a && mount -n -o remount,ro -t ext4 /dev/sda<your number> /
...
我只使用了一个停止命令,它有效果:systemctl stop systemd-journal*
... - ofarouk安装 zerofree
sudo apt install zerofree
重启进入 Ubuntu 恢复控制台,按住 [右 SHIFT] 键
高级选项 -> 恢复模式 -> root 控制台
找到根目录
mount | grep "sda"
运行 zerofree
echo "u" > /proc/sysrq-trigger
mount /dev/mapper / -o remount,ro
zerofree -v /dev/sda1
echo "u" > /proc/sysrq-trigger
似乎起到了作用。其他我阅读到的停止各种服务、杀死dhclients、禁用交换空间的建议都不够有效。 - vlad_tepeschsystemctl stop systemd-journald.socket
新的行:
systemctl stop systemd-journald-dev-log.socket
systemctl stop systemd-journald-audit.socket
systemctl stop systemd-journald.service
sudo swapoff -a
mount -n -o remount,ro -t ext4 /dev/sda1 /
zerofree /dev/sda1
systemctl stop haveged.service
。这样做对我来说解决了问题。 - Mahnzerofree
2019年1月22日
当前版本的Ubuntu在恢复模式下运行zerofree
变得困难 - 在这种情况下,更容易从一个活动的USB设备上运行此程序:
sudo apt install zerofree
安装程序zerofree
zerofree
并在磁盘的分区上运行它。 - Charles Greenzerofree
命令。在此之前,由于读写挂载的原因,这是不可能的。 - João Cioccamount -n -o remount,ro -t ext2 /dev/sda1 /
zerofree
命令,如此处所述。systemctl stop systemd-journald.socket && systemctl stop systemd-journald.service && sudo swapoff -a && mount -n -o remount,ro -t ext2 /dev/sda1 / && zerofree /dev/sda1
终于成功了。
尝试 Ubuntu
sudo apt install zerofree
并等待安装完成sudo fdisk -l
并记录系统硬盘,例如 /dev/sda2
sudo zerofree -v /dev/sda2
并等待操作完成halt
我成功地通过使用dd
而不是zerofree
来缩小了VBox虚拟机映像的大小。
sudo dd if=/dev/zero of=/EMPTY bs=1M
sudo rm -f /EMPTY
sudo poweroff
VBoxManage.exe modifyhd vbox.vdi --compact
。我的虚拟机文件从8GB缩小到6GB。 注意:可以忽略一些警告输出。
以下是我输入/输出的完整示例:
在虚拟机中:
erich@vbox:~$ sudo dd if=/dev/zero of=/EMPTY bs=1M status=progress
[sudo] password for erich:
97889812480 bytes (98 GB, 91 GiB) copied, 415 s, 236 MB/s
dd: error writing '/EMPTY': No space left on device
93399+0 records in
93398+0 records out
97934905344 bytes (98 GB, 91 GiB) copied, 415.592 s, 236 MB/s
erich@vbox:~$ sudo rm -f /EMPTY
bash: cannot create temp file for here-document: No space left on device
cd <C:/path/to/folder/of/vbox.vdi>
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd eOS.vdi --compact
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
zerofree
而不是在虚拟机上使用dd
有其原因:dd
会将整个驱动器填满到最大容量,而zerofree
只会清零“未使用的扇区”。所以,如果你有一个2TB的虚拟镜像,只使用了其中的2GB,并且想要回收100MB的空间,dd
会将镜像扩展到2TB,而zerofill
只会清零100MB而不改变镜像大小。在某些情况下,这会产生巨大的影响,比如当主机上的可用空间小于磁盘可能增长到的最大尺寸时。 - msanford只需使用来自此开源项目的Live CD,在Linux主机/客户端上(该Live CD内置了zerofree实用程序;还请阅读该网站上的说明):
https://sourceforge.net/projects/live-cd-with-zerofree-utility/
这也有助于减小导出的虚拟机设备的大小(即.ova文件)。
/dev/sda1
,并没有看到三个。有一个/dev/sda1
是你的根目录(或系统文件),一个/dev/sda2
用于引导(或/boot/文件,内核和更有限的加密[如果使用]),还有一个/dev/sda3
用于用户文件/home/ - 但对我来说,这是一个相当标准的设置,可以在安装时选择。无论如何,我没有看到三个/dev/sda1
的提及。 - guiverc