[macOS] Увеличить размер шифрованного dmg-образа

Если нужно зашифровать какую-то директорию, то для этого в macOS можно использовать манипуляцию с образами — через Disk Utility выбираем создание нового образа «из папки». На этом же этапе можно выбрать опцию и шифрования. В дальнейшем, образ можно монтировать, когда есть в этом потребность.

Правда, обнаружил нюанс — образ создается с фиксированным размером, и при попытке что-то в него положить новое, приводит к ошибке о нехватке места. Ок, через Disk Utility можно также сделать Resize, но у меня эта попытка каждый раз выдавала ошибку.

А вот изменение размера через консоль сработало (в примере — до 800 МБ):

hdiutil resize -size 800m <путь до образа>

Чтение больших файлов из архива

Есть RAR-архив с паролем, в нем текстовый файл размером ~4 ГБ, который после распаковки занимает ~120 ГБ.

Задача — посмотреть, что находится в файле, хотя бы какую-то часть данных (например, первые 100 строк).

Используем утилиту unar для распаковки:

unar e p<ПАРОЛЬ> <название архива>.rar <название файла в архиве>.txt> <имя файла для распаковки>.txt

В итоге на выходе получаем распакованный txt-файл. Открыть его «блокнотом» или чем-то похожем не получится — не хватит оперативной памяти. Поэтому вытащим только определенные строки:

head -n <число строк> <исходный файл>.txt > <результирующий файл>.txt

После этого в результирующем файле будет нужная нам информация (например, первые 100 строк) — это позволит понять, что же такого содержится в исходном файле и нужно ли дальше с ним что-то делать.

А узнать, сколько вообще строк в файле, можно так:

wc -l файл.txt

Узнать уровень износа SSD в Apple MacBook

Узнать уровень износа диска SSD в Apple MacBook можно с помощью утилиты Smartmontools.

Устанавливаем:

brew install smartmontools

Вызываем:

sudo smartctl /dev/disk0 -a

Строка Percentage Used покажет уровень износа от заявленного уровня записи производителем (в примере ниже — 4% для ноутбука 2019 года).

sudo smartctl /dev/disk0 -a
Password:
smartctl 7.4 2023-08-01 r5530 [Darwin 23.2.0 x86_64] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number: APPLE SSD AP0512M
Serial Number: xxxxxxxxx
Firmware Version: 1306
PCI Vendor/Subsystem ID: 0x106b
IEEE OUI Identifier: 0x000000
Controller ID: 0
NVMe Version: <1.2
Number of Namespaces: 1
Local Time is: Sat Dec 23 17:30:28 2023 MSK
Firmware Updates (0x02): 1 Slot
Optional Admin Commands (0x0004): Frmw_DL
Optional NVM Commands (0x0004): DS_Mngmt
Maximum Data Transfer Size: 256 Pages

Supported Power States
St Op Max Active Idle RL RT WL WT Ent_Lat Ex_Lat
0 + 0.00W — — 0 0 0 0 0 0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning: 0x00
Temperature: 35 Celsius
Available Spare: 100%
Available Spare Threshold: 99%
Percentage Used: 4%
Data Units Read: 129,247,158 [66.1 TB]
Data Units Written: 105,425,136 [53.9 TB]
Host Read Commands: 1,470,940,608
Host Write Commands: 818,122,034
Controller Busy Time: 0
Power Cycles: 125
Power On Hours: 849
Unsafe Shutdowns: 17
Media and Data Integrity Errors: 0
Error Information Log Entries: 0

Read 1 entries from Error Information Log failed: GetLogPage failed: system=0x38, sub=0x0, code=745

[Linux] Очистка лог-файлов

Логи по умолчанию хранятся в /var/logs. Узнать размер занимаемых данных:

/var/log# du -sh */ | sort -hr

800.1M journal/
6.2M atop/
1.7M nginx/
1.5M exim4/
344K apt/
124K mysql/
96K proftpd/
72K apache2/
8.0K installer/
4.0K unattended-upgrades/
4.0K ntpstats/
4.0K dbconfig-common/

К примеру, у меня директория journal занимает непозволительно много места. Сначала чиним:

urnalctl --vacuum-size=100M
journalctl --vacuum-time=7d

Затем очищаем:

rm -r /var/log/journal/

[macOS] Запуск веб-сервера одной командой

Чтобы поднять примитивный локальный веб-сервер на macOS, необязательно качать из сети сторонние решения (XAMPP, OpenServer…) — все что нужно, скорее всего, уже работает «из коробки».

Перейдите в директорию, которая будет являться корнем веб-сервера и выполните следующую команду:

Если установлен Python 2:

python -m SimpleHTTPServer 8000

Если установлен Python 3:

python3 -m http.server --cgi 8080

Если установлен PHP:

php -S localhost:2222

Сервер будет работать по адресу http://localhost:<порт>

Если установлен npm:

npm i -g serve
serve

[macOS] Отключение Gatekeeper

Для того, чтобы разрешить запуск исполняемых файлов из любых источников, необходимо выполнить команду:

Для MacOS 12 (Monterey):
sudo spctl --global-disable

Для MacOS 11 (Big Sure):
sudo spctl —master-disable

[macOS] Дублирование программ в списке «Открыть с помощью…»

Столкнулся с тем, что в контекстном меню «Открыть с помощью…» (Open with…) присутствуют дублирующие элементы одних и тех же программ, но с разными версиями.

Баг возникает после обновления приложения – сведения о старой версии почему-то продолжает числиться в списке «Открыть с помощью…».

Решение: в консоли выполнить команду

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user

Затем перезапустить Finder:

killall -kill Finder

[macOS] Загрузка системы через внешний SSD

В начале 2013 года я перешел с PC на Mac (был приобретен iMac 27″ Late 2012). Прошло семь лет, а компьютер все еще покрывает текущие задачи в полной мере.

И если CPU, памяти и видеокарты мне хватает за глаза, то HDD во всей этой конфигурации оказался самым слабым местом — с каждым годом он деградировал, становясь все медленнее и медленнее. В итоге дошло до того, что загрузка компьютера после включения и того момента, когда можно было поводить курсором по экрану, составляла порядка десяти минут. Выход из сна был быстрее, но не намного.

Читать далее «[macOS] Загрузка системы через внешний SSD»

[macOS] Нет видео в Apple TV

Столкнулся с проблемой, что на macOS при попытке просмотра видео в приложении Apple TV воспроизводится только звук, а самого видео нет, лишь черный экран плеера.

Пришлось изрядно помучится, прежде чем разобраться в причине проблемы. Оказалось, виной тому ранее установленный Google Remote Desktop, для работы которого требуется системный пермишен Screen Recording.

Если снять, а затем поставить галочку у ChromeRemoteDesktopHost.app, то проблема решается – видео начинает показываться в Apple TV.

Почему так происходит? В Apple TV, похоже, встроена защита контента от записи с экрана (скринкастов) и если приложение видит, что кто-то пытается прямо сейчас «записать» экран, то отключает показ видео. А снятие/установка галочки у ChromeRemoteDesktopHost.app исправляет некорректное поведение.

[macOS] Operation not permitted

Захотелось мне удалить старые файлы с диска, но не тут-то было – система пишет, что удалить не могу, ибо файл заблокирован (а если через терминал, то ошибка «Operation not permitted»).

Открываю свойство файла – действительно:

Можно вручную снять галку с «Locked», но такой метод не подойдет, если файлы десятки или сотни.

Выполняем команду, чтобы проверить, какой конкретно флаг установлен у файла:

sudo ls -laO <файл>

В моем случае было:

-rwxr--r-- 1 user staff uchg 60797 May 11 2001

Теперь осталось лишь удалить данный флаг:

sudo chflags nouchg <файл>

А если рекурсивно, то:

chflags -R nouchg <директория>

А если понадобится рекурсивно изменить права на файлы / директории, то читаем здесь.