linux dd提示空间不足,Linux dd 遇到 容量不足 的 resize 解法

SD 记忆卡的品牌不同, 容量多少也会有些差异, 于 dd 要将容量小的塞到大的没问题, 但是大的塞到小的就肯定行不通, 此篇的作法可能会有数据流失的风险, 使用起来请自行注意~

注1: 我是因为记忆卡后面的空间大多都没用到(16G 大概有 12G 都还没用到, 所以后面遗失的空间不会有差别)

注2: 这个只适用在容量差异不大的状况 (16G vs 16G), 容量差异太大, resize 也没有任何意义~

注3: 除了 resize 外的解法, 如果有 dd 前的原始 SD Card, 可以考虑把操作系统整个 tar 过去 或 cp -a 来制作.

先讲讲 dd 备份 和 还原, 下面再来纪录容量不足的解法.

备份: sudo dd bs=4M if=/dev/sdc | gzip > /tmp/backup.gz # bs=4M 跑起来比较快, 另外硬盘容量不够用, 所以备份顺便丢入压缩.

还原: sudo gzip -dc /tmp/backup.gz | dd of=/dev/sdc # 这边 bs=4M 不要加, 容量不够的话, 会遗失更多数据. (注: bs(缺省 4k) 不加, 会跑很久)

相关参考:

Linux dd 遇到 容量不足 的 resize 解法

将已经制作完成的 image 档, 写到新的记忆卡, 出现下述消息:

sudo gzip -dc /tmp/backup.gz | dd of=/dev/sdc

dd: 正在写入 ‘/dev/sdc’: 设备上已无多余空间

resize 步骤

出现此错误后, 记忆卡是无法 mount 起来的, 所以就需要靠 resize2fs 来帮忙, 但是使用 resize2fs 前, 需要先作 e2fsck, 修正 inodes, 步骤如下:

sudo e2fsck -f /dev/sdc2 # 会出现下述消息, 第一个选项要回答 n(告诉你可能会烂掉, 按 y 放弃运行, 按 n 是请他不要管, 开始修就对了), 后面就都回答 y 就好.

e2fsck 1.42.5 (29-Jul-2012)

The filesystem size (according to the superblock) is 3874176 blocks

The physical size of the device is 3822592 blocks

Either the superblock or the partition table is likely to be corrupt!

Abort? no

Pass 1: Checking inodes, blocks, and sizes

Inodes that were part of a corrupted orphan linked list found.  Fix? yes

Inode 166 was part of the orphaned inode list.  FIXED.

sudo resize2fs /dev/sdc2 # 修好后就可以作 resize 了.

注: /dev/sdc2 是我最后一个磁区, 容量不够会有问题都是出在最后面, 理论上修复最后一个磁区就可以了.

sudo mount /dev/sdc2 /media/cdrom # 再来随便 mount 看看, 确认数据有没有遗失即可.

相关网页

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值