Gibt es eine Liste der verfügbaren boot-args für darwin / OS X

In OS X können Sie Boot-Parameter mit

nvram boot-args=[options]

Wobei die Optionen, die ich kenne,- v (ausführlich) - x (abgesicherter Modus) und arch=x86_64 (Booten Sie auf 64-Bit-fähigen Computern in den 64-Bit-Kernel).

Gibt es noch andere? Es scheint keine Dokumentation zu geben.

Author: Hennes, 2011-03-09

6 answers

Es gibt keine offizielle Liste, die gemeinsamen sind in Kernel it-self kompiliert, andere können durch Kernel-Erweiterungen analysiert werden. Hier ist die Liste, die ich bisher gefunden habe.

Allgemeine boot-Optionen:

  • -v: Starten Sie das System immer im ausführlichen Modus, ohne CMD halten zu müssen-V beim Start.
  • -x: Starten Sie das System immer in den abgesicherten Modus , ohne beim Start Shift gedrückt halten zu müssen.
  • f: Alt Abgesicherter Modus.
  • -s: Starten Sie das System in den Einzelbenutzermodus, ohne CMD halten zu müssen-S beim Start.
  • -F - Boot-Datei ignorieren.
  • iog (zB iog=0x0)

    Dies kehrt den "Clamshell" - Modus für Apples Laptop-Systeme um, bei dem das System beim Schließen des Displays, aber beim Anschließen an einen externen Monitor und eine externe Tastatur wach bleibt. Nach dem Ausführen dieses Befehls beim Anschließen eines externen Monitors, die interne Anzeige wird deaktiviert, was in einigen Situationen von Vorteil sein kann, z. B. wenn Sie Ihren Desktop spiegeln, das externe Display jedoch mit einer höheren Auflösung ausführen möchten, als Ihr Laptop ausführen kann.CNET

  • arch

    Ändert, wie das System bootet, entweder auf den 32-Bit (i386) oder 64-Bit (x86_64) Kernel. Beachten Sie, dass Kernel-Erweiterungen von Drittanbietern 32-Bit oder 64-Bit sein können nur.

  • Graphics Mode: Abmessungen des VESA-Grafikmodus.

  • Text Mode: Abmessungen des VGA-Textmodus.
  • Boot Graphics: Grafik-oder Textmodus.
  • Quiet Boot: Ruhig Bootmode.
  • MKext Cache: Mtext-Cache-Datei.
  • Kernel Cache: Kernel-Cache-Datei.
  • rd: Root-Gerät.
  • boot-uuid: UUID booten.
  • platform: Plattformexperte {ACPI}.
  • config: Load alternate config plist (z.B. config=foobar laden /Library/Preferences/SystemConfiguration/foobar.plist statt com.apple.Boot.plist)x86osx.

  • serverperfmode=1

    Unter OS X El Capitan 10.11 und höher ermöglicht dies dem Performance Mode, zusätzliche Systemressourcen für Serveranwendungen bereitzustellen.

DTrace:

  • dtrace_dof_mode: DTrace-DOF-Modi einstellen {0/1/2/3}.
  • DisableFBT: FBT deaktivieren {1}.
  • IgnoreFBTBlacklist: Schwarze Liste bestimmter kritischer Module ignorieren {1}.

BSD:

  • -b: Führen Sie /etc/rc nicht aus.Boot.
  • -l: Protokollierung von Speicherlecks (osfmk/kern/startup.c).
  • srv: Als Server booten {1}.
  • ncl: Anzahl der Cluster.
  • nbuf: Anzahl der Puffer für BSD.
  • kmem: Zugriff auf den Kernel-Speicher {1}.
  • trace: Größe des Kernel-Trace-Puffers.
  • msgbuf: Nachrichtenpuffer.
  • rp: Wurzelpfad.
  • mcache_flags: Speicher-Cache Flags.
  • mbuf_debug: MBuf Debug {1}.
  • initmcl: Init mbuf Cluster.
  • socket_debug: Buchse debug (Netto).
  • net_affinity: Netzaffinität (Netz).
  • rte_debug: Route debug (net) {flags}.
  • -rwroot_hack: Mount root Lesen/schreiben.

IOKit:

  • mseg: Maximales Segment.
  • dart: Entfernen Mapper vorhanden.
  • io: IO-Kit-Debug.

Mach:

  • keepsyms: nicht entladen KLD/Adresse-symbol übersetzung {1}.
  • debug: Kernel-debug {flags} (z.B. debug=0x14e).

    Aktiviert Kernel-Debugging-Funktionen, die Ihnen zusätzliche Informationen anzeigen. Z. B.

    • 0x01 - Stoppen Sie beim Booten und warten Sie, bis der Debugger angeschlossen ist
    • 0x02 - Kernel-Debugging-Ausgabe an die Konsole senden
    • 0x04 - Drop in Debugger auf einem nicht maskierbaren Interrupt
    • 0x08 - Kernel-Debugging-Informationen an eine serielle port
    • 0x10 - Machen Sie ddb zum Standard-Debugger
    • 0x20 - Diagnoseinformationen an das Systemprotokoll ausgeben
    • 0x40 - Lassen Sie den Debugger ARP und Route
    • 0x80 - Unterstützt alte Versionen von gdb auf neueren Systemen
    • 0x100 - Deaktivieren Sie den grafischen Panikdialogbildschirm
  • nvram_paniclog: commit paniclog zu NVRAM {1}.

  • pmsafe_debug: Setzen Sie CPUs in den" sicheren " Power-Modus {1}.
  • preempt: Set standard-Präemptionsrate.
  • unsafe: Max unsichere Quanten.
  • poll: Max poll quanta.
  • yield: Poll yield Shift planen.
  • idlehalt: Stoppen Sie den Leerlauf-Thread, um die CPU in den Lowpower-Modus zu versetzen {1}.
  • panic_io_port: Lesen Sie in Panik von diesem E/A-Port {0x0 bis 0xffff}.
  • _fpu: CPU-Funktionen zur Begrenzung der Startzeit {387/mmx/sse}.
  • disable high mem/2: bevorzuge hohe mem}.
  • immediate_NMI: Sofortiger NMI-Debugger erzwingen {1}.
  • -legacy: Erzwingen Sie den Legacy-32bit-Modus.
  • lcks: Statistiken sperren.
  • novmx: Keine altivec-emulation Rosetta {1}.
  • max_valid_dma_addr: Maximal gültige DMA-Adresse.
  • maxbouncepool: Maximale bounce pool größe.
  • maxloreserve: Maximale niedrige Reserve.
  • npvhash: Physischer zu virtuellem Mapping-Hash.
  • wpkernel: Write protect kernel {1}.
  • -no_shared_cr3: Deaktivieren Sie den freigegebenen Kernel-Adressraum für 64-Bit-Benutzer.
  • -pmap_trace: Kernel-Traces aktivieren für pmap.
  • _panicd_ip: IP des Servers.
  • _router_ip: IP des Routers.
  • panicd_port: Port des Servers.
  • -zc: Überprüfung des freien Zonenelements.
  • mtxspin: Mutex-spin (ppc).
  • vmmforce: VMM-Kraft (ppc).
  • fn: Kraft-Nickerchen (ppc) (acpi) {0/1/2}.
  • pmsx: Experimentelle power-management-stepper-Modus (ppc) {1}.
  • ctrc: Legen Sie die Ablaufverfolgung auf eine bestimmte CPU (ppc) fest.
  • tb: Nicht-Standard-trace puffergröße (ppc).
  • wcte: Schreiben, kombinieren Sie den timer aktivieren (ppc).
  • mcklog: Maschinenprüfflag löschen (ppc).
  • mcksoft: Wiederherstellung der Computer-Check-Software (ppc).
  • ht_shift: Nicht standardmäßige Hash-Tabellengröße (ppc) {1}.
  • zsize: Größe der Zielzone.
  • colors: Legen Sie VM-Farben fest.
  • fill: Füllen Seiten.
  • serialbaud: Serielle Baudrate einstellen.

Boot-Optionen von xnu/osfmk/i386/i386_init.c:

  • diag: Diagnoseausgabe.
  • serial: Serielle Diagnosekonsole. Unterstützung für eine serielle Tastatur und / oder Konsole.

  • maxmem

    Maximal zu verwendender Speicher. Es begrenzt den adressierbaren Speicher auf den angegebenen Betrag (z. B. maxmem=32).

  • cpus=1

    Begrenzt die Anzahl der aktiven Prozessoren im System auf die eingestellte Stufe. Dies könnte helfen, die Macht zu bewahren, wahrscheinlich nicht nützlich für viel anderes, es sei denn, Sie testen und programmieren.

  • himemory_mode

    Es wird verwendet, um große physische Speicherkonfigurationen für über 4GB-Systeme zu debuggen. Modi: 0-alle Seiten verfügbar, 1-hohe mem deaktivieren, 2-hohe mem bevorzugen.

  • immediate_NMI

    Debuggen Sie die Unterstützung für über 4GB-Systeme, indem Sie sofortige NMI erzwingen Debugger.

  • urgency_notification_abstime

Sonstiges:

  • bluetoothHostControllerSwitchBehavior (never/always)

    Teilen Sie dem Bluetooth-Treiber mit, ob er zu dem Dongle wechseln soll, den Sie angeschlossen haben. Verwenden Sie always, um den externen Dongle auch nach dem Neustart zum Standard zu machen.

  • smbios: Ausführliche SMBIOS (AppleSMBIOS.kext) {1}

  • acpi: Debug AppleACPIPlatform {1-8}
  • acpi_level: ACPI Debug Level
  • acpi_layer: ACPI-Debug-Layer
  • acpi_sleep: ACPI Schlaf
  • nvdebug: NVDAResman debug
  • nvrm: NVDAResman
  • ndrv_debug_level: NDRV Debug-Level (NVDAResman)
  • pstep: Power Step Debug (ACPI_SMC)
  • hpet: AppleHPET
  • busratio (zB busratio=20): Es verwendet i7 cpu in 10.5.6, nach 10.5.7 es nicht brauchenx86osx.

Quelle: xnu-1228 / Boot Argumente


Verwendung

Zum Beispiel, wenn Sie sich im Einzelmodus befinden (CMD-S nach dem Ton beim Start), in den abgesicherten Modus zu laufen und wörtlich mit zusätzlichen Kernel-Debugging-Ausgabe an die Konsole, versuchen:

sudo nvram boot-args="-x -v debug=0x14e"

Um das Argument in vorhandene hinzuzufügen (ohne zu überschreiben), versuchen Sie:

sudo nvram boot-args="-v $(nvram boot-args 2>/dev/null | cut -f 2-)"

Um Startargumente zu entfernen, führen Sie Folgendes aus:

sudo nvram boot-args=""
sudo nvram -d boot-args

Andere nicht offizielle Parameter finden Sie in kernel binary it-self, z.B.

$ 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

Oder überprüfen Sie entweder in Apple-Quelldateien oder auf GitHub, indem Sie nach PE_parse_boot_argn (die verwendet wird, um die Kernel-Boot-Argumente zu analysieren).

 38
Author: kenorb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-10-30 23:08:16

Googeln für boot-args site:developer.apple.com gibt einige gute Ressourcen. E. g.

  • cpus=1 zwingt das system nur einen einzigen CPU-Kern.
  • srv=1 ist auf Xserves und Computern eingestellt, auf denen Mac OS X Server installiert ist, und ändert angeblich einige Kernel-Tuning-Parameter für den serverfreundlichen Betrieb.
  • Mit _panicd_ip=a.b.c.d Können Sie die IP-Adresse eines Kernel-Debug-Servers angeben, an den Kernel-Core-Dumps geschrieben werden sollen.
  • debug=0xH (Wobei H eine 1-4-stellige Hexadezimalzahl ist) . sie setzen Kernel-Debugging-Flags aus dieser Liste:

    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).  
    
 10
Author: Spiff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-12-18 17:18:25

Hier sind einige weitere:

-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
Author: Patches,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-12-18 17:04:56

Der Darwin-Kernel heißt "xnu", das Beste, was ich tun konnte, war, den Quellcode für das zu grep, wonach gesucht wurde.

Beispiel: OS X 10.8.5

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

Prozedur:

Gehen Sie hier (oder Ihre OS X-Version)

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

Download XNU-tarball herunter, entpacken, grep für "parse_boot"

cd xnu; grep -iRn parse_boot .

 4
Author: slf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-10-03 13:03:45

Nicht zu vergessen das immens Nützliche (wenn Sie auf Lion aktualisiert haben und Ihren Mac im "Closed Clamshell Mode" mit geöffnetem Deckel verwenden möchten)

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

Ein großes Lob an: [[4]}chenga.8

Was mich jedoch stört, ist, dass ich dafür keine Erklärung finde. Warum 0x0? Warum nicht 0x1? Wofür steht " iog " überhaupt?

Ich sollte darauf hinweisen, dass es auf meinem MacBook nicht funktioniert.

 1
Author: lorenzog,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-11-02 00:48:41

Apple scheint keine umfassende Liste bereitzustellen. Googeln für ein paar bekannte Optionen und site:apple.com liefert keine Ergebnisse. Die Reduzierung der Liste der Optionen findet Artikel wie dies eine und einige Quellcode - parsing diese Argumente, aber nichts umfassendes.

Sie können auch nach PE_parse_boot_arg suchen, einer Funktion, die Bootargumente analysiert.


Davon abgesehen gibt es im Web einige Seiten von Drittanbietern, auf denen die Benutzer die umfassendsten bereitstellen informationen, die ich finden konnte, aber es könnte veraltet sein:

 0
Author: Daniel Beck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-03-10 03:24:26