Збільшення fat32

Mar. 14th, 2026 11:41 pm
henry_flower: A melancholy wolf (Default)
[personal profile] henry_flower

Для спеціялізованого кастомного дістро мені знадобився механізма збільшення fat32 партішона (під час початкового буту). Коли вимовляють слово resize мають на увазі 2 речі: збільшення партішона та збільшення хфайлової системи. Можна просто зробити 1ше, але зиску для користувача-дурбели від того буде небагато.

Кастомний дістро використовує (не треба непритомніти) systemd, який вміє це робити, але, на жаль, не для fat32:

"systemd-growfs knows very little about specific file systems ... and will instruct the kernel to grow the mounted filesystem to full size of the underlying block device ... Currently: ext4, btrfs, xfs"

Якщо би мова йшла про ext4 та безтурботне життя без systemd, алгоритма був би нескладний: за допомогою parted(8) збільшується розмір партішона, потім за допомогою resize2fs(8) збільшується хфайлова система. Робити це можна, наприклад, ув initramfs, до того як монтуються блокові дівайси і запускається фінальний switch_root(8).

Ріпо з parted насправді має С бібліотеку libparted, якою користується ютіліта parted. Навколо libparted побудована вся інфраструктура магічних аплікації, які можуть зменшувати/збільшувати розміри будь-яких партішонів.

libparted не містить коду для збільшення файлових систем, за винятком vfat. Не дивлячись на це, рісайзування fat залишається прихованим від користувача і відсутнім ув parted (страшенно популярна gtk'шна аплікація gparted той маловідомий куток libparted радісно використовує).

Далі починається божевілля. Будь-який дістро, від деривативів убунти, федори та прибацаного арча до контейнерів з олпайном, містить нєчто під назвою fatresize. Будь-яка LLM мументально виплюне цю назву і напише приклад її використання, що, могло би бути вкрай корисно, коли би та fatresize працювала.

Якщо поглянути на її нутрощі після розглядання libparted/parted, стає нескладно помітити, що той, хто її писав, копіював звідти шматки хфункцій чи цілі хфункції verbatim, що одначе не допомогло: "ютіліта" є неспроможною навіть розпарсити рядок /dev/sda3 коректно і вилітає після спроби замість того обробляти /dev/sda, тому що libparted відмовляється робити ідіотизм.

На ґітгабі плачуть, але автор не відповідає. Є 1 (один) форк працюючий (у сенсі, з намаганням полагодити елементарні речі), але також занедбаний.

Варіянти вирішення прублеми: (а) натравити на те улюбленого огента, (б) сказати огенту написати з нуля, (с) написати самому. Я вибрав останнє,

$ _out/fat32-resize _out/junk/1G info 2
transport                 file
sectors                   2097152
partition_table           msdos
partitions                2
sector_size               512
partition_start           411648
partition_end             2097151
partition_length          1685504
fs_type                   fat32
fs_start                  411648
fs_end                    1460219
fs_length                 1048572
partition_used_percent    62
lolbar                    loooooooooooooooooooo...........l

але перед тим поцікавився, хто є автор fatresize.

Ви не повірите!

"то, что ми сєйчас наблюдаєм по всєму міру -- єто вскритий давно зрєющій фурункул русофобії і злоби. Шовінізм по отношєнію Запада ко всєм русскім. Маскі сняти."

Це з його linkedin, де він пише що нібито працює ув швейцарському охфісі гоогла, але одночасно ув твіторі чомусь косить під румунського маґа-патріота.

mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)
[staff profile] mark posting in [site community profile] dw_maintenance

Happy Saturday!

I'm going to be doing a little maintenance today. It will likely cause a tiny interruption of service (specifically for www.dreamwidth.org) on the order of 2-3 minutes while some settings propagate. If you're on a journal page, that should still work throughout!

If it doesn't work, the rollback plan is pretty quick, I'm just toggling a setting on how traffic gets to the site. I'll update this post if something goes wrong, but don't anticipate any interruption to be longer than 10 minutes even in a rollback situation.

Profile

mymozhanru: (Default)
mymozhanru

January 2020

S M T W T F S
   1 234
567891011
12131415161718
19202122232425
262728293031 

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 19th, 2026 01:22 pm
Powered by Dreamwidth Studios