Pull to refresh

Очистка ~/ Library / Keychains: как я удалил 1.6 млн файлов и спас свой Mac

Level of difficultyEasy

😳 300 ГБ и 1,6 миллиона файлов?! Это уже не просто временные остатки — это натуральный keychain-апокалипсис. Как очистить папку Keychain в Библиотеке файлов на Mac (у меня m3 проц, но думаю это баг нынешней OS "Секвойя")

Здорова, ёпты!
Здорова, ёпты!

Очистка login.keychain-db.sb-* файлов в macOS: подробная инструкция

В macOS в папке ~/Library/Keychains могут накапливаться временные файлы вида login.keychain-db.sb-*. В норме таких файлов немного, но в некоторых случаях система создаёт сотни тысяч или даже миллионы таких записей. (О причинах мне еще предстоит узнать)

В моём случае таких файлов накопилось 1,6 миллиона, и они занимали около 300 ГБ на SSD. Причина точно неизвестна, но, скорее всего, это связано с багом в связке ключей, повреждённым аккаунтом macOS или сбоями синхронизации iCloud.

Свойства папки
Свойства папки
Открывается данная папка минут 15
Открывается данная папка минут 15


Если при ручном удалении этих файлов возникают ошибки вроде этой:

Permission denied
zsh: argument list too long

— не пугайтесь. Вот рабочее решение.


Шаг 0: отключите SIP (System Integrity Protection)

macOS по умолчанию защищает системные файлы. Чтобы работать с файлами Keychain напрямую, нужно отключить SIP.

1. Перезагрузите Mac в Recovery Mode:

• Удерживайте Command (⌘) + R при запуске, или просто до изнеможения держите кнопку включения.

2. Откройте Terminal, верхнем меню найдете.

3. Введите:

csrutil disable

Если не сработает, значит нужно повторить вход в "Режим Восстановления"(у меня получилось отключить SIP с третьего раза, еще включал профиль разработчика и понижал уровень защиты, эт тоже делается в Recovery Mode)

4. Перезагрузите систему(тоже команда в терминале):

reboot

После перегрузки можно зайти в обычный (повседневный) профиль на Mac и делать все из него

Очистка
1. Перейдите в папку Keychains(в любом терминале, использую iTerm, привык к нему):

cd ~/Library/Keychains

2. Снимите защитные флаги с файлов:

sudo find . -iname "login.keychain-db.sb-*" -exec chflags noschg,nouchg,norestricted {} \;

3. Выдайте права на удаление:

sudo find . -iname "login.keychain-db.sb-*" -exec chmod u+w {} \;


4. Удалите файлы по одному (чтобы избежать ошибок):

sudo find . -iname "login.keychain-db.sb-*" -exec rm -v {} \;

(Опционально, но лучше включить) Включите SIP обратно:

csrutil enable

Заключение

Если вы заметили, что в ~/Library/Keychains или вообще в разделе "Данные системы" в Настройках стало подозрительно много файлов — обязательно проверьте на наличие login.keychain-db.sb-*. В запущенных случаях они могут занимать гигабайты места и замедлять работу системы.

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.