使用cpio向U盘复制/home目录无输出无文件,求助排查原因
问题排查与解决
核心问题分析
你直接将cpio输出写入整个磁盘设备/dev/sdb,而非U盘的分区(如/dev/sdb1),这是导致无有效复制动作的主要原因之一。此外,cpio默认格式可能不适合直接写入块设备,也会引发问题。
具体解决步骤
- 确认U盘分区:执行
sudo fdisk -l,找到U盘对应的分区(通常是/dev/sdb1,后缀数字代表分区编号),不要直接使用整个磁盘设备/dev/sdb。 - 挂载U盘分区(推荐,更直观):
- 创建临时挂载点:
sudo mkdir /mnt/usb - 挂载U盘分区:
sudo mount /dev/sdb1 /mnt/usb - 用
cpio写入挂载点:sudo find /home | cpio -o -H newc > /mnt/usb/home_backup.cpio
- 创建临时挂载点:
- 直接写入分区(不挂载方式):如果要直接写入块设备分区,必须指定
cpio的新c格式保证兼容性:sudo find /home | cpio -o -H newc > /dev/sdb1 - 强制刷新缓存:命令执行完毕后,执行
sudo sync,确保系统缓冲的所有数据写入U盘,避免出现“已执行但无实际写入”的情况。 - 验证写入结果:
- 若写入挂载点,直接查看
/mnt/usb目录下的备份文件; - 若直接写入分区,可挂载分区后查看,或执行
cpio -t < /dev/sdb1列出备份内容。
- 若写入挂载点,直接查看
额外注意事项
- 执行操作前,确保U盘分区未被其他进程占用,否则会导致写入失败;
- 若系统提示
cpio命令不存在,执行sudo apt install cpio完成安装(全新Ubuntu默认预装,但不排除特殊情况)。
内容的提问来源于stack exchange,提问作者cnd
相关产品推荐
相关产品推荐

