我使用 busybox(和 buildroot)。如何使用 status?例如
dd if=disk.img of=/dev/sda bs=4M conv=fsync status=progress
我使用 busybox(和 buildroot)。如何使用 status?例如
dd if=disk.img of=/dev/sda bs=4M conv=fsync status=progress
如何为ext2文件系统大致计算每个inode的字节数?
我有7.3GB的存储空间(15320519个扇区,每个扇区512字节)。我创建了一个块大小为4096字节的ext2文件系统。
mke2fs /dev/sda2 -i 524288 -m 0 -L "SSD" -F -b 4096 -U 11111111-2222-3333-4444-555555555555 -O none,filetype,sparse_super,large_file
文件系统标签=SSD
操作系统类型:Linux
块大小=4096(log=2)
片段大小=4096(log=2)
15104个inode,1915064个块
0个块(0%)为超级用户保留
第一个数据块=0
最大文件系统块数=4194304
59个块组
每个块组32768个块,每个块组32768个片段
每个组256个inode
超级块备份存储在块上:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
通常我所有的文件大小为100KB(大约有5个文件可能为400MB)。我尝试阅读这篇文章和这篇文章。但仍然不清楚如何大致计算每个inode的字节数?当前的524288不够,现在我无法在sda2上创建新文件,但仍然有很多空闲空间。
P.S. 额外信息
# df -T
文件系统 类型 1K-块 已用 可用 使用率 挂载在
/dev/root ext4 146929 84492 59365 59% /
devtmpfs devtmpfs 249936 0 249936 0% /dev
tmpfs tmpfs 250248 0 250248 0% /dev/shm
tmpfs tmpfs 250248 56 250192 0% /tmp
tmpfs tmpfs 250248 116 250132 0% /run
/dev/sda2 ext2 7655936 653068 7002868 9% /mnt/sda2
# df -h
文件系统 大小 已用 可用 使用率 挂载在
/dev/root 143.5M 82.5M 58.0M 59% /
devtmpfs 244.1M 0 244.1M 0% /dev
tmpfs 244.4M 0 244.4M 0% /dev/shm
tmpfs 244.4M 56.0K 244.3M 0% /tmp
tmpfs 244.4M 116.0K 244.3M 0% /run
/dev/sda2 7.3G 637.8M 6.7G 9% /mnt/sda2
# fdisk -l
磁盘 /dev/sda: 7.45 GiB, 8001552384字节,15628032个扇区
磁盘型号:8GB ATA Flash Di
单位:扇区1 * 512 = 512字节
扇区大小(逻辑/物理):512字节/512字节
I/O大小(最小/最佳):512字节/512字节
磁盘标签类型:dos
磁盘标识符:0x0a19a8af
设备 启动 开始 结束 扇区 大小 Id 类型
/dev/sda1 309 307508 307200 150M 83 Linux
/dev/sda2 307512 15628030 15320519 7.3G 83 Linux
我想制作 ext2 文件系统。我想将“ number-of-inodes ”选项设置为某个数字。我尝试了几个值:
但总是我的价值不一样。为什么?
我这样调用mkfs
sudo mkfs -q -t ext2 -F /dev/sda2 -b 4096 -N 99000 -O none,sparse_super,large_file,filetype
我这样检查结果
$ sudo tune2fs -l /dev/sda2
tune2fs 1.46.5 (30-Dec-2021)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 11111111-2222-3333-4444-555555555555
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: filetype sparse_super large_file
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 99552
Block count: 1973720
Reserved block count: 98686
Overhead clusters: 6362
Free blocks: 1967353
Free inodes: 99541
First block: 0
Block size: 4096
Fragment size: 4096
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 1632
Inode blocks per group: 102
Filesystem created: Thu Apr 6 20:00:45 2023
Last mount time: n/a
Last write time: Thu Apr 6 20:01:49 2023
Mount count: 0
Maximum mount count: -1
Last checked: Thu Apr 6 20:00:45 2023
Check interval: 0 (<none>)
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 32
Desired extra isize: 32
Default directory hash: half_md4
Directory Hash Seed: 61ff1bad-c6c8-409f-b334-f277fb29df54
如您所知,如果没有 root_owner 选项,mke2fs 将使用运行 mke2fs 的用户的用户和组 ID。让我们在 Ubuntu 22 x86_64 (mke2fs 1.46.5 (30-Dec-2021)) 上测试它:
生成图像
mke2fs -t ext2 -I 256 -E 'lazy_itable_init=0,lazy_journal_init=0' -O '^large_file' -O '^huge_file' -L ext2test 'diskEmpty.img' 102400k
挂载镜像
gnome-disk-image-mounter -w diskEmpty.img
但是只有 root 用户可以写这个……为什么?
让我们测试 root_owner 选项:
生成图像
mke2fs -t ext2 -I 256 -E 'root_owner=1000:1000,lazy_itable_init=0,lazy_journal_init=0' -O '^large_file' -O '^huge_file' -L ext2test 'diskEmpty.img' 102400k
挂载镜像
gnome-disk-image-mounter -w diskEmpty.img
现在我可以写入我的磁盘了。
为什么我不能在没有功能的情况下写入磁盘root_owner
?