Официального списка нет, общий компилируется в само ядро, другие могут быть проанализированы расширениями ядра. Вот список, который я нашел до сих пор.
Общие параметры загрузки:
-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=foobar
, /Library/Preferences/SystemConfiguration/foobar.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
: Route debug (net) {flags}.
-rwroot_hack
: Монтировать root для чтения / записи.
IOKit:
mseg
: Макс. Сегмент.
dart
: Удалить маппер присутствует.
io
: IO Kit Debug.
Мах:
keepsyms
: Не выгружать KLD / преобразование адреса и символа {1}.
debug
: Отладка ядра {флаги} (например 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
: предпочитаю высокую память}.
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
: Установить виртуальные цвета.
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
): он использовал процессор i7 в 10.5.6, после 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
(который используется для анализа аргументов загрузки ядра).
Поиск в Google
boot-args site:developer.apple.com
дает хорошие ресурсы. Напримерcpus=1
вынуждает систему использовать только одно ядро процессора.srv=1
устанавливается на Xserve и компьютерах, на которых установлен Mac OS X Server, и предположительно изменяет некоторые параметры настройки ядра для обеспечения дружественной работы на сервере._panicd_ip=a.b.c.d
Позволяет указать IP-адрес сервера отладки паники для записи дампов ядра ядра.debug=0xH
(Где H - шестнадцатеричное число от 1 до 4) Позволяет установить флаги отладки ядра из этого списка:источник
static void parse_bsd_args(void)
opensource.apple.com/source/xnu/xnu-2782.1.97/bsd/kern/…void i386_init(void)
opensource.apple.com/source/xnu/xnu-2782.1.97/osfmk/i386/…void gzalloc_configure(void)
opensource.apple.com/source/xnu/xnu-2782.1.97/osfmk/kern/…Вот еще немного :
источник
Ядро darwin называется «xnu», лучшее, что я мог сделать, это найти исходный код для того, что искали.
Пример: OS X 10.8.5
https://gist.github.com/reklis/fa26d4e8db62d6eea9ea
Процедура:
Перейдите сюда (или ваша версия OS X)
http://www.opensource.apple.com/release/mac-os-x-1085/
Скачайте tar-архив XNU, извлеките, grep для "parse_boot"
cd xnu; grep -iRn parse_boot .
источник
Не забывайте об очень полезной (если вы обновились до Lion и хотите использовать свой Mac в «закрытом режиме раскладушки» с открытой крышкой)
слава к: chenga.8
Однако меня беспокоит то, что я не нахожу объяснения этому. Почему 0x0? Почему не 0x1? Что означает «йог» в любом случае?
Я должен отметить, что на моем MacBook это не работает.
источник
Apple, кажется, не предоставляет полный список. Погуглил несколько известных вариантов и
site:apple.com
не дал результатов. Сокращение списка опций позволяет найти статьи, подобные этой, и некоторый исходный код, анализирующий эти аргументы, но ничего комплексного.Вы также можете найти
PE_parse_boot_arg
функцию, которая хорошо разбирает загрузочные аргументы.При этом в Интернете есть несколько сторонних страниц, где пользователи предоставляют наиболее полную информацию, которую я могу найти, но она может быть устаревшей:
источник