Збільшення fat32
Для спеціялізованого кастомного дістро мені знадобився механізма збільшення 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, де він пише що нібито працює ув швейцарському охфісі гоогла, але одночасно ув твіторі чомусь косить під румунського маґа-патріота.

no subject
Наскіко я пам'ятаю, у всіх фат-партішонів спочатку йде отой файл-алокейшн-тейбл, розмір якого не фіксований, а залежить від власне розміру партішона при створенні. І, наскіко я знаю, якщо новий розмір партішона буде більше порогового, то доведеться переносити файло з блоків, де буде сидіти розширений фат.
Тапками не бийте, це в мене якісь конфабуляції, бо я ніби колись десь то читав.
no subject
так і є, але той партішона ізначально порожній майже (тобто користувач його буде наповнювати сам), так шо не страшно
no subject
ізучять сімєйниє партрєтиробити fat32 resize — і побачиш, скільки отої московської погані в FOSS community розвелося.PS. борці з русофобією і маґа-патріоти — то дуже часто одні й ті самі організми.
no subject
якби ж то тількі ув foss
пітун нив колись про "катастрофу" через розвалення совка, але про таку кількість агентів впливу, яку має зараз рф, совок міг лише мріяти, навпаки, розвалення додало їм безмежних ресурсів та вуха майже усюди: ув кожній конторі з маргінальним навіть впливом (умовний банк ув вайомінґу) сидить русская пика-сісадмін. ув часи маґа їм навіть не треба прикидатися більше антіпутінцамі
шоб вам стало ще веселіше: нагадаю, головний дівопс kernel.org--русскій в Монреалі, від якого залежить чистота (як pristinity українською?) лайнуксного кернела на бульйонах дівайсів. чи відмовиться він коли Родіна Спросіт, питання є риторичне
no subject
— ні секунди не сумніваюся. Думаю, така само фігня на усіх рівнях: від СЄО, який підхоплює тріпєр від очільниці «двіжєнія наши», і закінчуючи товстими кул-сісопами у підвальних приміщеннях офісних комплексів.
no subject
хех, сьогоднішня новина:
"Roman Gushchin of Google's Linux kernel team announced yesterday as this [Sashiko] new agentic AI code review system."
цей підар оригінально з яндєксу
чому би його нє пріютіть