Сегодня выловил вот такую шибку “mkfs.ext4: Size of device /dev/sdb1 too big to be expressed in 32 bits using a blocksize of 4096” при попытке создать файловую систему ext4 на сервере с Centos6 64bit и размером раздела 20Тб. Суть ошибки не буду расписывать – она упирается в адресацию и размеры блоков, решается просто.
Что бы решить проблему – достаточно обновить в системе пакет программ e2fsprogs так как те что идут в стандартной поставке не умеют работать с большими разделами и менять размер блока при создании файловой системы.
1 2 3 4 5 6 7 |
# git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git # cd e2fsprogs # mkdir build ; cd build/ # ../configure # make # make check # make install |
Этим я обновил необходимый софт. Далее меняю параметры раздела и создаю файловую систему:
1 |
# mke2fs -O 64bit,has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize -i 4194304 /dev/sdb1 |
Далее монтирую раздел в fstab и проверяю монтирование:
1 2 |
echo "/dev/sdb1 /home2 ext4 defaults 1 2" >>/etc/fstab mount -a |
Если никаких ошибок не видим – значит все отлично.
Спасибо! Полезная заметка.
> make install
если нет острой необходимости, то лучше не ставить утилиты в систему, например, на centos6 эти сборки ломают поднятие mdraid во время загрузки системы. Но, если очень надо создать файловую систему большого размера, достаточно просто вызвать mkfs и разметить том (текущий каталог build), например так:
misc/mke2fs -O 64bit,has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize -i 4194304 /dev/md127
Честно сказать эта заметка у меня была из разряда “сделал и забыл”, у меня два таких сервака на поддержке с таим обьемом винтов. В моем случае на серверах железные рейды, а не программный как вы описываете и я создавал ФС на собраном железном рейде. Ну и что сказать сервер живет уже с пол года у клиента нареканий нет, его все устраивает.