sudo mkfs.ext4 -m 0 -T 小-i 8192 /dev/sdb
sudo fsck -f /dev/sdb
fsck from util-linux 2.36.1
e2fsck 1.46.2 (28-Feb-2021)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb: 11/65536000 files (0.0% non-contiguous), 8680071/524288000 blocks
sudo挂载/dev/sdb/mnt/disk
tar -xvf archive.tar -C /mnt/disk
train_m/233557/10.jpg
tar: train_m/233557: Cannot mkdir: No space left on device
tar: train_m/233557/10.jpg: Cannot open: No such file or directory
train_m/233557/5.jpg
tar: train_m/233557: Cannot mkdir: No space left on device
tar: train_m/233557/5.jpg: Cannot open: No such file or directory
train_m/233557/0.jpg
tar: train_m/233557: Cannot mkdir: No space left on device
tar: train_m/233557/0.jpg: Cannot open: No such file or directory
train_m/492576/
train_m/492576/1.jpg
train_m/492576/2.jpg
train_m/492576/3.jpg
train_m/492576/0.jpg
据我了解,这意味着某些目录无法提取,而其他目录可以。
tar:由于之前的错误而以失败状态退出
显然,有几千个目录(大约 600k 个目录)未被提取。 怎么会发生这种事?
提取后,我检查了空间:
df-i
Filesystem Inodes IUsed IFree IUse%
/dev/sdb 65536000 8276432 57259568 13%
df-h
Filesystem Size Used Avail Use%
/dev/sdb 492G 97G 396G 20%
附注如果我使用默认参数格式化磁盘,存档会成功提取,但由于文件数量较多,我达到了 inode 限制,无法向磁盘添加更多数据。
-T small
选项设置三个选项:
blocksize = 1024
inode_size = 128
inode_ratio = 4096
第三个给你更多的索引节点。前两个限制文件的大小。 你只想要第三个。尝试使用
-T news
来代替 - 它只会影响 inode_ratio。