TGViewer
.рубик .рубик @dotrubic · 862 subscribers
Post #204 734
Очередной пост про весло.

На этот раз, правда, с болью: я запустил pacman -Syu, а весло или не весло, а сам пакман в результате потеряло часть системных файлов.
Их было достаточно много, при этом: например, bash или sudo просто не было, как таковых (они стали размером в 0 байт), а zsh ругался на:
zsh: error while loading shared libraries: /usr/lib/libcap.so.2: file too short
Очевидно, либа тоже была 0 байт.

В целом, из оставшихся доступных взаимодействий был маппинг весла по сети, был бинарь wsl.exe (есть ещё bash, но я проиграл в рулетку, и баш был тоже обнулен).

Какое решение всей это проблемы вышло по итогу:
Качается сама либа из пакетов арча:
https://archlinux.org/packages/core/x86_64/libcap/
Как-то её придется распаковать, а расжимать zstd скорее всего нечем - поэтому качается разжималка zstd отсюда

Либа распаковывается куда-нибудь, а дальше в проводнике открывается сетевой путь до tmp внутри весла \\wsl$\Arch\tmp, куда переносится либа.
Распаковать сразу в /usr из винды нельзя - винда ругается на пермишены (и правильно ругается кста).

Дальше фикшу либу, и можно уже заходить в шелл.
wsl -u root -e /bin/cp -r /tmp/usr /

Но всё веселье только начинается, надо ж ещё починить систему!

Логичней всего это делать через пакман, но увы - пакман тоже умер, поэтому по старой схеме - качаем https://archlinux.org/packages/core/x86_64/krb5,
распаковываем, накатываем поверх системы.

Ура, пакман появился, но починить всё нам будет мешать неработащий gpgme - его тоже придется накатить поверх системы.
(можно прописать "SigLevel = Never" в /etc/pacman.conf, но переустановить сам gpgme у меня всё равно не вышло - вылезли проблемы с либами).

Теперь gpg полностью работает, и можно наконец перенакатывать все пакеты: pacman -S --overwrite "*" $(pacman -Qnq)

Последним этапом можно попробовать поискать по системе мертвые файлы через лютый
find / \( -path '/mnt' -o -path '/sys' -o -path '/proc' -o -path '/dev' -o -path '/run' \) -prune -o -size 0c -print | grep -vE "lock|.gitkeep|__init__.py\$"
Но я у себя ничего не нашел.

UPD: покопался у себя в event viewer, и похоже, что причиной этому был OOM - весло попросило слишком много памяти, и винда убила виртуалку. pacman такое переживает достаточно плохо.

UPDx2: В комментариях подсказали, что восстановление после такого краша описано на арчевики - если вкратце, то половину действий можно упростить при наличии pacman-static (статической версии пакмана), или просто другого работающего арча, например, livecd, хотя в случае с веслом это сложнее. Also, мертвые файлы можно искать менее лютым find /usr/lib -size 0 - поскольку при обновлении пакетов из реп задевается только этот путь.
More from @dotrubic
  1. Aug 26, 2026Поучаствовал в этом году в составлении хак-квеста для проходки на ZeroNights) Залетайте по…
  2. Jul 14, 2026Your friendly telegram changelog here! Дуров опять придумал всратую херню! Повод выйти из…
  3. Nov 27, 2024У меня тут произошел инцидент: какой-то хмырь скопировал мой профиль и стучался к людям в…
  4. Oct 18, 2024В конце августа мы сделали силами нашей команды CTF для Островка!, а потом вместе с @greg0…
  5. Jul 9, 2024Тут на гитхабе разворачивается очередная дРаМа. Если вкратце: есть в экосистеме питона так…
  6. Jul 7, 2024Сидел я сегодня такой, развлекался с Nix'ом и внезапно обнаружил, что конструкции вида nix…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →