Есть ли список доступных параметров загрузки для darwin / OS X

в OS X вы можете установить параметры загрузки с

nvram boot-args=[options]

где параметры, которые я знаю о-v (verbose) - x (безопасный режим) и arch=x86_64 (загрузка в 64-разрядное ядро на 64-разрядных машинах).

есть ли другие? Кажется, нет никакой документации.

26
задан Hennes
14.02.2023 14:19 Количество просмотров материала 2904
Распечатать страницу

6 ответов

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

общие параметры загрузка:

  • -v: всегда загружайте систему в подробном режиме без необходимости удерживать CMD -V при запуске.
  • -x: всегда загружать систему в Безопасный Режим без держать Shift при запуске.
  • f: Старый Безопасный Режим.
  • -s: загрузите систему в однопользовательском режиме без необходимости удерживать CMD -S при запуске.
  • -F - Игнорировать Файл Boot.
  • iog (например,iog=0x0)

    это отменяет режим "раскладушка" для портативных систем Apple, где, когда вы закрываете дисплей, но подключить систему к внешний монитор и клавиатура система будет бодрствовать. После выполнения этой команды при подключении внешнего монитора внутренний дисплей будет отключен, что может быть полезно в некоторых ситуациях, например, когда вы зеркально отображаете рабочий стол, но хотите запустить внешний дисплей с более высоким разрешением, чем ваш ноутбук.CNET

  • arch

    изменяет способ загрузки системы, либо до 32-битной (i386) или 64-разрядный (x86_64) ядра. Обратите внимание, что сторонние расширения ядра могут быть 32-бит или 64-бит.

  • Graphics Mode: размеры графического режима VESA.

  • Text Mode: размеры режима текста VGA.
  • Boot Graphics: графический или текстовый режим.
  • Quiet Boot: Тихий Bootmode Что.
  • MKext Cache: Mkext файл кэша.
  • Kernel Cache: Кэш Ядра папка.
  • rd: Корневое Устройство.
  • boot-uuid: Boot 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.ботинок.
  • -l: протоколирование утечек памяти (osfmk/kern/startup.c).
  • srv: загрузка с сервера {1}.
  • ncl: количество кластеров.
  • nbuf: количество буферов для BSD.
  • kmem: доступ к памяти ядра {1}.
  • trace: размер буфера трассировки ядра.
  • msgbuf: Буфер Сообщений.
  • rp: корневой путь.
  • mcache_flags: кэш-память флаги.
  • mbuf_debug: Отладка MBuf {1}.
  • initmcl: mbuf кластеров инит.
  • socket_debug: отладка сокета (net).
  • net_affinity: чистое сродство (net).
  • rte_debug: Route debug (net) {flags}.
  • -rwroot_hack: Mount root чтение/запись.

IOKit:

  • mseg: максимальный сегмент.
  • dart: удалить существующий mapper.
  • io: набор IO Отлаживать.

Mach:

  • keepsyms: не выгружать KLD / преобразование символов адресов {1}.
  • debug: отладка ядра {flags} (например,debug=0x14e).

    включает функции отладки ядра, которые покажут вам дополнительную информацию. Например:

    • 0x01 - остановитесь во время загрузки и дождитесь присоединения отладчика
    • 0x02 - отправить отладки ядра консоль
    • 0x04 - падение в отладчик на немаскируемом прерывании
    • 0x08 - отправлять отладочную информацию ядра на последовательный порт
    • 0x10 - сделать ddb отладчиком по умолчанию
    • 0x20 - вывод диагностической информации в системный журнал
    • 0x40 - разрешить отладчику ARP и route
    • 0x80 - поддержка старых версий gdb на новых системах
    • 0x100 - отключить графический диалог паники экран
  • nvram_paniclog: передать paniclog в NVRAM {1}.

  • pmsafe_debug: перевести процессоры в" безопасный " режим питания {1}.
  • preempt: установить частоту прерываний по умолчанию.
  • unsafe: Макс опасные кванты.
  • poll: Макс квантов опрос.
  • yield: график опроса сдвиг урожайности.
  • idlehalt: остановить поток простоя, чтобы позволить процессор в малоэнергичному режим {1}.
  • panic_io_port: в панике прочитать из этого порта ввода / вывода {0x0 to 0xffff}.
  • _fpu: ограничение времени загрузки процессора {387 / mmx / sse}.
  • disable high mem/2: предпочитаю high mem}.
  • immediate_NMI: принудительный отладчик NMI {1}.
  • -legacy: режим наследия 32бит силы.
  • lcks: статистика замком.
  • novmx: в Rosetta {1} эмуляции altivec нет.
  • max_valid_dma_addr: Макс допустимый ДМА адрес.
  • maxbouncepool: Макс отказов размера бассейн.
  • maxloreserve: максимальный низкий запас.
  • npvhash: физический виртуальный хэш.
  • wpkernel: защита ядра {1}.
  • -no_shared_cr3: отключение общего адресного пространства ядра для 64-разрядных пользователей.
  • -pmap_trace: включить трассировки ядра для pmap.
  • _panicd_ip: IP сервера паники.
  • _router_ip: IP маршрутизатор.
  • panicd_port: порт сервера паники.
  • -zc: проверка элемента свободной зоны.
  • mtxspin: мьютекс спин (ppc).
  • vmmforce: усилие VMM (ppc).
  • fn: Force nap (ppc) (acpi) {0/1/2}.
  • pmsx: Экспириментально режим (ppc) {1} управления силы stepper.
  • ctrc: установка трассировки для конкретного ЦП (ppc).
  • tb: по умолчанию размер буфера трассировки (КПП.)
  • 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-отключить высокий mem, 2-предпочесть высокий память.

  • immediate_NMI

    поддержка отладки для более чем 4 ГБ систем, заставляя немедленного отладчика NMI.

  • urgency_notification_abstime

другое:

  • bluetoothHostControllerSwitchBehavior (never/always)

    скажите драйверу Bluetooth, следует ли переключаться на ключ, который вы подключили. Чтобы сделать внешний ключ по умолчанию, даже после перезагрузки, использовать always.

  • smbios: Verbose SMBIOS (AppleSMBIOS.kext) {1}

  • acpi: Debug AppleACPIPlatform {1-8}
  • acpi_level: ACPI уровень отладки
  • acpi_layer: ACPI Debug Layer
  • acpi_sleep: ACPI Sleep
  • nvdebug: NVDAResman отладки
  • nvrm: NVDAResman
  • ndrv_debug_level: уровень отладки NDRV (NVDAResman)
  • pstep: мощность шаг отладки (ACPI_SMC)
  • hpet: AppleHPET
  • busratio (например,busratio=20): он использовал процессор i7 в 10.5.6, после 10.5.7 ему не нужноx86osx.

источник: xnu-1228 / Параметры загрузки


использование

например, когда вы находитесь в одиночном режиме (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 binary it-self, например

$ 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 (используется для разбора параметров загрузки ядра).

9
отвечен kenorb 2023-02-15 22:07

Поиск boot-args site:developer.apple.com дает некоторые хорошие ресурсы. Например:

  • cpus=1 заставляет систему использовать только одно ядро процессора.
  • srv=1 устанавливается на Xservers и машинах, на которых установлен Mac OS X Server, и, предположительно, изменяет некоторые параметры настройки ядра для работы с сервером.
  • _panicd_ip=a.b.c.d позволяет указать IP-адрес сервера отладки паники для записи дампов ядра.
  • debug=0xH (Где H-шестнадцатеричное число из 1-4 цифр) позволяет установить флаги отладки ядра из этого списка:

    DB_HALT   0x01 Halt at boot-time and wait for debugger attach (gdb).  
    DB_PRT    0x02 Send kernel debugging printf output to console.  
    DB_NMI    0x04 Drop into debugger on NMI (Command–Power, Command-Option-Control-Shift-Escape, or interrupt switch).  
    DB_KPRT   0x08 Send kernel debugging kprintf output to serial port.  
    DB_KDB    0x10 Make ddb (kdb) the default debugger (requires a custom kernel).  
    DB_SLOG   0x20 Output certain diagnostic info to the system log.  
    DB_ARP    0x40 Allow debugger to ARP and route (allows debugging across routers and removes the need for a permanent ARP entry, but is a potential security hole)—not available in all kernels.  
    DB_KDP_BP_DIS  0x80 Support old versions of gdb on newer systems.  
    DB_LOG_PI_SCRN 0x100 Disable graphical panic dialog.  
    DB_KERN_DUMP_ON_PANIC   0x0400  Causes the kernel to core dump when the system panics.  
    DB_KERN_DUMP_ON_NMI 0x0800  Causes the kernel to core dump when the user triggers an NMI.  
    DB_DBG_POST_CORE    0x1000  Controls the kernel's behavior after dumping core in response to an NMI (DB_KERN_DUMP_ON_NMI). If the user triggers an NMI and this flag is clear, the kernel will dump core and then continue. Conversely, if this flag is set the kernel will dump core and then wait for a debugger connection.  
    DB_PANICLOG_DUMP    0x2000  Controls whether the kernel dumps a full core (if the flag is clear) or simply a panic log (if the flag is set).  
    
9
отвечен Spiff 2023-02-16 00:24

и:

-f                            Force rebuild extensions cache
-v                            Verbose booting shows debug information
-s                            Boots into single user mode (means only terminal based mode)
-x                            Boots into safe mode
-legacy                       Boots into 32bit instead of 64bit mode
rd=disk0s1                    Force to boot a specific partition on a specific drive (BSD drive notation, means disk0 = physical disk 1). Here disk1 partition 1 is forced to be booted.
Graphics Mode=1024x768x32@75  Forces to boot with a resolution of 1024 x 768 with 32bit colors at 75Hz
Kernel=mach_kernel            Forces to load a specific kernel, helpful for testing of new kernels.
cpus=1                        Force using only 1 CPU core, may help addressing issues
idlehalt=0                    May solve stuttering and shuttering on dualcore CPUs
platform=X86PC                Forces to not use powermanagement (disables ACPI)
platform=ACPI                 Forces to use powermanagement (enables ACPI, but may crash your system)
8
отвечен Patches 2023-02-16 02:41

ядро Дарвина называется "xnu", лучшее, что я мог сделать, это grep исходный код для того, что искали.

пример: OS X 10.8.5

https://gist.github.com/reklis/fa26d4e8db62d6eea9ea

процедура:

перейти сюда (или ваша версия OS X)

http://www.opensource.apple.com/release/mac-os-x-1085/

скачать XNU tarball, extract, grep для "parse_boot"

cd xnu; grep -iRn parse_boot .

3
отвечен slf 2023-02-16 04:58

Apple, похоже, не предоставляет полный список. Гуглить за несколько известных вариантов и site:apple.com не дает никаких результатов. Уменьшение списка параметров находит статьи, Как этот и некоторые исходный код разбор этих аргументов, но ничего всеобъемлющего.

вы также можете искать PE_parse_boot_arg, функция, которая анализирует аргументы загрузки.


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

0
отвечен Daniel Beck 2023-02-16 07:15

Не забывайте о чрезвычайно полезном (если вы обновились до Lion и хотите использовать свой mac в "закрытом режиме раскладушки" с открытой крышкой)

sudo nvram boot-args="iog=0x0"

слава: chenga.8

однако меня беспокоит то, что я не нахожу этому объяснения. Почему 0x0? Почему не 0x1? Что обозначает гвн за нафик?

Я должен отметить, что на моем MacBook не работает.

0
отвечен lorenzog 2023-02-16 09:32

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх