我的分区表如下所示:
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 32505855 16251904 83 Linux
/dev/sda2 32505856 33554431 524288 83 Linux
当我在 上放置文件系统时sda2
,它抛出了以下错误:
sudo mkfs -t ext4 /dev/sda2
mke2fs 1.42.9 (4-Feb-2014)
mkfs.ext4: inode_size (128) * inodes_count (0) too big for a
filesystem with 0 blocks, specify higher inode_ratio (-i) or lower inode count (-N).
我尝试了扩展分区和主分区,但出现了相同的错误。我有 Ubuntu 14.04TLS。该怎么办?
答案1
1:它不必对主/扩展/逻辑分区执行任何操作。
2:我想你想说的是“逻辑”分区而不是“扩展”。
3:mkfs 认为您的分区大小为 0 字节。这是非常肯定的,因为内核在重新分区后无法更新分区表。编辑分区表后,您是否收到一些需要重新启动的警告?
在Linux上,有两个不同的分区表:一个位于硬盘的第0块。并且在内核内存中也有一个。您可以使用命令读取第一个fdisk -l /dev/sda
。第二个你可以用cat /proc/partitions
命令来阅读。这两者需要同步,但这并不总是可能的。例如,您无法更改当前使用的分区的限制。在这种情况下,内核分区表不会改变。
您可以使用命令让内核重新读取磁盘分区表blockdev --rereadpt /dev/sda
。大多数分区工具在将新更改的分区表写入磁盘后都会执行此命令。
问题是只有较新的 Linux 内核才能重新读取已用硬盘的分区表。从这个角度来看,如果硬盘上有一个简单分区被工具或安装点使用,或者它是活动交换分区,则该硬盘被视为“已使用”。
即使这些较新的内核也无法更改当前正在使用的分区的限制。
我认为,您的根系统已打开/dev/sda
,因此您需要在重新分区后重新启动。
答案2
你必须运行partprobe
更新表的命令
答案3
在 RHEL8 中,我创建了扩展为“Linux”类型的新分区。
我曾经mkfs.ext4
格式化过它,并且partprobe
,partx /dev/sda
。
经过多次重新启动后,该分区仍然存在。
答案4
cat /proc/partitions
将导致
major minor #blocks name
8 0 292968750 sda
8 1 1048576 sda1
8 2 70637568 sda2
**8 3 1 sda3**
8 16 292968750 sdb
8 17 143373716 sdb1
253 0 63463424 dm-0
253 1 7168000 dm-1
11 0 1048575 sr0
我照做了,partprobe
然后就跑了cat /proc/partitions
。
正在上映
major minor #blocks name
8 0 292968750 sda
8 1 1048576 sda1
8 2 70637568 sda2
8 3 221281582 sda3
8 16 292968750 sdb
8 17 143373716 sdb1
253 0 63463424 dm-0
253 1 7168000 dm-1
11 0 1048575 sr0
经过以上结果。我成功运行了下面的命令。
mkfs -t ext4 /dev/sda3