我使用的是 Ubuntu 10.10,并通过 wubi 安装了它。但是脚本在复制 var/tmp 时退出了。我没有确切的错误消息,但它说有些文件在传输之前被删除了。我很困惑,所以我重启了电脑。现在电脑仍然登录到 wubi,但我无法重新使用脚本,因为它说我要移动到的分区正在使用中。
sudo ./wubi-move-to-partition /dev/sda7 /dev/sda6
Sanity checks...
Volume /dev/sda7 is in use. Aborting
现在我该怎么做?
答案1
不要在 10.10 上使用此脚本。它不再起作用。查看五笔指南获取最新迁移脚本的链接。
答案2
可能的原因
看起来它在migrate_files(该脚本中的函数)之后停止了,现在它拒绝再次执行它,因为它检查分区是否被格式化 - 您可以在此处看到检查它的脚本的一部分
if mount -t auto "$dev" $target 2> /dev/null; then
if [ $(ls -1 $target | wc -l) -gt 1 ] || \
[ "$(ls -1 $target)" != "lost+found" ]; then
echo "Volume $dev is in use. Aborting"
umount $target || true
exit 1
fi
umount $target
fi
如果它找到文件夹 lost+found(通常位于 ext 文件系统上),它会打印出卷正在使用中并退出。
以及可能的解决方案
因此,如果您仍可以启动 wubi,请通过运行 gparted 从该分区中删除文件系统,选择分区 /dev/sda7,然后将其删除。然后在同一位置创建新的未格式化分区(右键单击未分配,新建,选择文件系统未格式化)。然后再次运行脚本
如果脚本再次停止,可能的解决方案
如果从 /var/tmp 复制文件后再次停止,请检查其中的内容,然后在 --exclude=/sys/* 之后向此部分脚本添加 --exclude /var/tmp/folder_that_dont_like_to_be_copied 参数将其排除在复制之外。
migrate_files(){
echo "Migrating files..."
rsync -av --exclude=/host --exclude=/mnt/* --exclude=/home/*/.gvfs --exclude=/media/*/* --exclude=/tmp/* --exclude=/proc/* --exclude=/sys/* / $target
}