Официального списка нет, общий компилируется в само ядро, другие могут быть проанализированы расширениями ядра. Вот список, который я нашел до сих пор.
Общие параметры загрузки:
-v: всегда загружать систему в режиме Verbose без необходимости держать CMD - V при запуске.
-x: всегда загружать систему в безопасном режиме без необходимости удерживать Shift при запуске.
f: Старый безопасный режим.
-s: загрузить систему в однопользовательском режиме без необходимости удерживать CMD - S при запуске.
-F - игнорировать загрузочный файл.
iog (например, iog=0x0)
Это переворачивает режим "раскладушка" для ноутбуков Apple, когда вы закрываете дисплей, но подключаете систему к внешнему монитору и клавиатуре, система не спит. После выполнения этой команды при подключении внешнего монитора внутренний дисплей будет отключен, что может быть полезно в некоторых ситуациях, например, когда вы зеркально отображаете свой рабочий стол, но хотите использовать внешний дисплей с более высоким разрешением, чем у вашего ноутбука. ,CNET
arch
Изменяет способ загрузки системы: 32-битное (i386) или 64-битное (x86_64) ядро. Обратите внимание, что сторонние расширения ядра могут быть только 32-разрядными или 64-разрядными.
Graphics Mode: VESA Графический режим Размеры.
Text Mode: VGA Текстовый режим Размеры.
Boot Graphics: графический или текстовый режим.
Quiet Boot: Тихая загрузка.
MKext Cache: файл кэша Mkext.
Kernel Cache: файл кеша ядра.
rd: корневое устройство.
boot-uuid: загрузочный UUID.
platform: Платформа Эксперт {ACPI}.
config: Загрузить альтернативный список конфигурации (например, config=gfx будет загружать /Library/Preferences/SystemConfiguration/foo.plist вместо com.apple.Boot.plist) x86osx.
serverperfmode=1
В OS X El Capitan 10.11 и более поздних версиях это позволяет режиму производительности выделять дополнительные системные ресурсы для серверных приложений.
DTrace:
dtrace_dof_mode: установить режимы DTrace DOF {0/1/2/3}.
DisableFBT: отключить FBT {1}.
IgnoreFBTBlacklist: игнорировать черный список определенных критических модулей {1}.
BSD:
-b: не запускать /etc/rc.boot.
-l: регистрация утечек памяти (osfmk/kern/startup.c).
srv: загрузиться как сервер {1}.
ncl: количество кластеров.
nbuf: количество буферов для BSD.
kmem: доступ к памяти ядра {1}.
trace: размер буфера трассировки ядра.
msgbuf: буфер сообщений.
rp: корневой путь.
mcache_flags: флаги кеша памяти.
mbuf_debug: MBuf Debug {1}.
initmcl: инициализация кластеров mbuf.
socket_debug: отладка сокета (нетто).
net_affinity: чистая близость (нетто).
rte_debug: отладка маршрута (net) {флаги}.
-rwroot_hack: монтировать root для чтения / записи.
IOKit:
mseg: максимальный сегмент.
dart: удалить маппер присутствует.
io IO Kit отладки.
Мах:
keepsyms: не выгружать перевод KLD/Address-символов {1}.
debug: ядро debug {flags} (например, debug=0x14e).
Включает функции отладки ядра, которые покажут вам дополнительную информацию. Например
0x01 - остановка во время загрузки и ожидание подключения отладчика
0x02 - отправляет вывод отладочной информации ядра на консоль
0x04 - зайти в отладчик по немаскируемому прерыванию
0x08 - отправить отладочную информацию ядра на последовательный порт
0x10 - сделать ddb отладчиком по умолчанию
0x20 - вывод диагностической информации в системный журнал
0x40 - разрешить отладчику ARP и маршрутизировать
0x80 - поддержка старых версий GDB на новых системах
0x100 - отключить графический диалог паники
nvram_paniclog: зафиксировать паниклог в NVRAM {1}.
pmsafe_debug: перевести процессоры в "безопасный" режим питания {1}.
preempt: установка скорости вытеснения по умолчанию.
unsafe: Макс небезопасных квантов.
poll: Макс. квант опроса.
yield: график смещения доходности опроса.
idlehalt: остановите свободный поток, чтобы процессор перешел в режим пониженного энергопотребления {1}.
panic_io_port: при панике считывание с этого порта ввода / вывода {0x0 до 0xffff}.
_fpu: Ограничить возможности процессора при загрузке {387 / mmx / sse}.
disable high mem/2: предпочесть high mem}.
immediate_NMI: принудительный немедленный отладчик NMI {1}.
-legacy: принудительно использовать 32- битный режим.
lcks: заблокировать статистику.
novmx: эмуляция altivec в Rosetta {1} отсутствует.
max_valid_dma_addr: максимально допустимый адрес DMA.
maxbouncepool: максимальный размер пула отказов.
maxloreserve: максимальный низкий резерв.
npvhash: физический к виртуальному хешу отображения.
wpkernel: ядро защиты от записи {1}.
-no_shared_cr3: отключить общее адресное пространство ядра для 64-битных пользователей.
-pmap_trace: включить трассировку ядра для pmap.
_panicd_ip: IP-адрес сервера паники.
_router_ip: IP роутера.
panicd_port: порт сервера паники.
-zc: проверка элементов свободной зоны.
mtxspin: Mutex Spin (PPC).
vmmforce: сила VMM (шт.)
fn: Force nap (ppc) (acpi) {0/1/2}.
pmsx: экспериментальный шаговый режим управления питанием (ppc) {1}.
ctrc: установить трассировку для конкретного процессора (ppc).
tb: размер буфера трассировки не по умолчанию (ppc).
wcte: включить запись таймера объединения (ppc).
mcklog: сбросить флажок проверки компьютера (ppc).
mcksoft: восстановление программного обеспечения проверки компьютера (ppc).
ht_shift: нестандартный размер хеш-таблицы (ppc) {1}.
zsize: размер целевой зоны.
colors: установить цвета VM.
fill: заполнить страницы.
serialbaud: установить скорость последовательного бода .
Параметры загрузки из xnu/osfmk/i386/i386_init.c:
diag: Диагностический вывод.
serial: серийный диагностический пульт. Поддержка последовательной клавиатуры и / или консоли.
maxmem
Максимум памяти для использования. Он ограничивает адресуемую память указанным количеством (например, maxmem=32).
cpus=1
Ограничивает количество активных процессоров в системе до заданного уровня. Это может помочь сохранить энергию, что вряд ли пригодится многим другим, если вы не тестируете и не программируете.
himemory_mode
Он используется для отладки больших конфигураций физической памяти для систем более 4 ГБ. Режимы: 0 - все доступные страницы, 1 - отключить высокий мем, 2 - предпочитать высокий мем.
immediate_NMI
Поддержка отладки для систем более 4 ГБ с помощью немедленного отладчика NMI.
urgency_notification_abstime
Другой:
bluetoothHostControllerSwitchBehavior (never/always)
Сообщите драйверу Bluetooth, переключаться ли на подключенный ключ. Чтобы сделать внешний ключ по умолчанию даже после перезагрузки, используйте always .
smbios: многословный SMBIOS (AppleSMBIOS.kext) {1}
acpi: отладка платформы AppleACPIP {1-8}
acpi_level: уровень отладки ACPI
acpi_layer: ACPI Debug Layer
acpi_sleep: ACPI Sleep
nvdebug: отладка NVDAResman
nvrm: NVDAResman
ndrv_debug_level: уровень отладки NDRV (NVDAResman)
pstep: Power Step Debug (ACPI_SMC)
hpet: AppleHPET
busratio (например, busratio=20): в 10.5.6 использовался процессор i7, после 10.5.7 не требуется x86osx .
Источник: xnu-1228 / Boot Arguments
использование
Например, когда вы находитесь в одиночном режиме (CMD - S после звука при запуске), чтобы перейти в безопасный режим и многословно с дополнительным выводом отладочной информации ядра на консоль, попробуйте:
sudo nvram boot-args="-x -v debug=0x14e"
Чтобы добавить аргумент в существующий (без переопределения), попробуйте:
sudo nvram boot-args="-v $(nvram boot-args 2>/dev/null | cut -f 2-)"
Чтобы удалить загрузочные аргументы, запустите:
sudo nvram boot-args=""
sudo nvram -d boot-args
Другие неофициальные параметры можно найти в двоичном коде kernel , например:
$ strings /System/Library/Kernels/kernel | grep -C7 maxmem
kernel_early_bootstrap
diag
serial
Serial mode specified: %08X
PE_init_printf
version_variant = %s
version = %s
maxmem
himemory_mode
himemory_mode: %d
immediate_NMI
urgency_notification_abstime
i386_vm_init
power_management_init
machine_startup
Или проверьте либо в исходных файлах Apple, либо на GitHub, выполнив поиск PE_parse_boot_argn (который используется для анализа аргументов загрузки ядра).