Официального списка нет, общий компилируется в само ядро, другие могут быть проанализированы расширениями ядра. Вот список, который я нашел до сих пор.
Общие параметры загрузки:
-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
(который используется для анализа аргументов загрузки ядра).