Wie verbessere ich die Startgeschwindigkeit?


67

Ich habe viele Videos gesehen, die Ubuntu schneller machen, aber diese Methoden beschleunigen nur die Desktop-Leistung.

Ich möchte meinen Computer schneller booten lassen. Kann ich irgendetwas tun, um Ubuntu deutlich schneller zu starten?


5
Systeme, die systemd(seit 15.04 IIRC) verwenden, werden mit dem Tool geliefert, mit dem systemd-analyzeSie analysieren können, welcher Prozess wie lange dauert, um zu starten. Sehen Sie man systemd-analyze, um mehr über alle seine Optionen zu erfahren, die wahrscheinlich am häufigsten verwendet werden systemd-analyze blame.
Byte Commander

@ByteCommander Eine schrittweise Antwort erledigt den Job.
Anwar

Antworten:


28

Im Allgemeinen sollte Ihr System umso schneller sein, je weniger Programme beim Booten geladen werden. Versuchen Sie BUM (aus dem Software-Center), um einige nicht benötigte Dienste zu deaktivieren, und stellen Sie außerdem sicher, dass keine unnötigen Programme installiert sind, die beim Booten geladen werden. Schließlich sollte die Verwendung eines Solid-State-Laufwerks (SSD) als Startgerät die Startzeit erheblich verbessern.

Noch eine Sache, Ihr Dateisystemtyp macht auch einen Unterschied. EXT4 hat einige Leistungseinbußen erlitten (laut Phoronix), aber ich fand EXT4 immer noch großartig, um schnell zu booten.


Sie könnten hinzufügen, welcher Dienst deaktiviert werden könnte, was normalerweise nicht nützlich ist.
Philippe Gachoud

@PhilippeGachoud Ich kann mich jetzt wirklich nicht erinnern. Dies ist aus dem Jahr 2010!
RolandiXor

Ich verwende eine abwärtskompatible SSD und mein Board ist SATA. Es bootet schnell verrückt.
userDepth

17

Ich bin neulich nur darauf gestoßen. Hier die "e4rat" Anleitung

Diese kleine App ist unglaublich.

Ich habe einen übermüdeten Einzelprozessor-AMD-Sempron mit 2800+ verwendet, der Natty normalerweise mit 1,45 Minuten auf 27,885 Sekunden hochfährt.

Ich habe die Boot-Charts, um es zu beweisen. Es ist verrückt! Bildbeschreibung hier eingeben


1
Das hilft wirklich !!!
user12164

Mehr Leute müssen über e4rat wissen, es ist ein fantastisches Tool, das die größte Verbesserung bei vielen verschiedenen Tipps und Tricks erzielt hat.
Victor Bjelkholm

3
Ist es noch legitim für den 12.04? Ich habe gehört, es würde Probleme mit ureadahead verursachen. Ist das wahr?
user138784

@ user138784 Soweit ich weiß, ist dies so, weil ureadahead wie der e4rat arbeitet, also offensichtlich Konflikte. Aber e4rat scheint aus irgendeinem Grund besser zu sein als ureadahead. Vielleicht wäre es auch nützlich - der e4rat funktioniert aus irgendeinem Grund nicht standardmäßig, er muss angepasst werden , andernfalls wird die Protokolldatei nicht erstellt.
Hi-Angel

e4rat hat nicht funktioniert in 16.04
Anwar

17

Die Verbesserung der Startzeit hängt in hohem Maße mit dem Deaktivieren / Verwalten von Diensten zusammen, aber den aktuellen Antworten mangelt es an Details zum Deaktivieren von Diensten, die verwendet werden systemd.

Was ist systemd?

Kurz gesagt, systemd ist ein System- und Service-Manager für Linux, der mit SysV- und LSB-Init-Skripten kompatibel ist. Mehr dazu können Sie auf der offiziellen Projektseite nachlesen .

Überprüfen Sie, welche Dienste die meiste Zeit in Anspruch nehmen

Verwenden Sie den folgenden Befehl, um zu überprüfen, welcher Dienst die meiste Zeit benötigt

systemd-analyze blame

Deaktivieren des automatischen Starts von Diensten während des Startvorgangs

Wenn Sie das automatische Starten von Diensten während des Startvorgangs deaktivieren möchten, können Sie den folgenden Befehl verwenden

sudo systemctl disable some-time-eater-service.service --now

Möglicherweise möchten Sie jedoch sehen, für welche anderen Dienste der betreffende Dienst erforderlich ist. Verwenden Sie zum Überprüfen den folgenden Befehl

systemctl list-dependencies some-time-eater-service.service --reverse

Hinweis: Ersetzen Sie diese some-time-eater-service.servicedurch den tatsächlichen Servicenamen wie postgresql@9.5-main.service.

Beachten Sie, dass durch Deaktivieren des automatischen Starts ein Dienst nicht mehr gestartet werden kann. Der Dienst kann nach dem Start gestartet werden, wenn eine Anforderung vorliegt. Wenn Sie es vollständig deaktivieren möchten, lesen Sie den nächsten Abschnitt

Dienste vollständig deaktivieren.

Wenn Sie einen Dienst vollständig deaktivieren möchten, damit er nicht gestartet werden kann, sollten Sie ihn maskanstelle von deaktivieren verwenden. So was

sudo systemctl mask <SERVICE-NAME>

Ersetzen Sie die <SERVICE-NAME>durch den tatsächlichen Namen eines Dienstes

Der Unterschied zwischen maskund disableist, dass Maske einen Dienst vollständig deaktiviert. Sie können ihn nicht starten. Sie müssen unmaskes mit systemd starten (Sie können immer noch mit beginnen service). Aber disableeinfach Auto-Start eines Dienstes deaktivieren, können Sie es später beginnen.

Beispielsweise wird nach dem Maskieren meines postgresql@9.5-main.serviceDienstes systemctldie folgende Meldung angezeigt , wenn ich ihn starten wollte

Failed to start postgresql@9.5-main.service: Unit postgresql@9.5-main.service is masked.

GUI-Tool

Ein GUI-Tool, das ich besonders interessant finde, ist systemd-manager, dass es sich noch in der Entwicklungsphase befindet und noch nicht auf dem Weg zum offiziellen Ubuntu-Repository ist. Sie können es jedoch sehr einfach von der Github-Seite von Systemd-Manager installieren . Die Releases enthalten ein .deb-Paket, das sehr einfach zu installieren ist. Sie benötigen jedoch GTK-3.16 oder höher.

Sobald Sie heruntergeladen und installiert haben, können Sie es mit dem systemd-managerBefehl starten . Starte es.

Die Anwendung hat zwei Hauptansicht. Eine ist Systemd Units und andere ist Systemd Analyze . Sie können es mit der Beschriftung in der oberen linken Ecke wechseln. Siehe den Screenshot.

Zwischen Ansichten wechseln

Es gibt drei Arten von Einheiten, die Sie verwalten können. Servcies , Steckdosen und Timer . Sie können zwischen ihnen wechseln. Siehe den Screenshot.

Wechseln Sie zwischen den Gerätetypen

Informationen anzeigen

Die drei Hauptregisterkarten sind Dateien , Journal , Abhängigkeiten .

  • Dateien ist die Konfigurationsdatei des ausgewählten Geräts.
  • Journal ist die Ausgabe des Live-Systems beim Aktivieren / Deaktivieren / Starten / Stoppen von Einheiten
  • Abhängigkeiten zeigt an, welche anderen Dienste oder Einheiten aktiviert sein müssen, um einen ausgewählten Dienst zu starten.

Statusanzeigen

Neben dem Namen der Einheiten befinden sich zwei Spalten, die den Status angeben. Die linke gibt an, ob das Gerät beim Booten gestartet werden kann, und die rechte gibt an, ob das Gerät gerade läuft. Sehen Sie sie im Bild.

Beim Booten aktiviert

Derzeit laufender Status

Steuerschalter

Zum Durchsuchen des Status "Beim Start aktiviert" oder "Wird ausgeführt" befinden sich oben rechts zwei Google-Schaltflächen. Aktiviert bedeutet, dass die Einheiten gestartet und gebootet werden. Sehen Sie sie im Bild.

Toogle wechselt zum Aktivieren / Starten

Die vollständige Ansicht der Anwendung ist unten dargestellt

Komplette Ansicht

Hoffe das wird helfen. Ich profitiere von anderen Antworten zu systemd, musste aber die Informationen wirklich an einem Ort sammeln.

Weitere Informationen :

Um mehr zu erfahren, systemdbesuchen Sie diese Links:

Andere Antworten haben andere Vorschläge. Einschließlich SSD-Kauf, Erhöhung des Arbeitsspeichers usw. Wenn Sie es sich leisten können, werden diese definitiv helfen, insbesondere der SSD-Vorschlag.


15

Wechseln Sie von einem Magnetlaufwerk zu einem Solid State Drive oder einem Magnetic & Solid State Hybrid Drive. Dadurch wird jedes Betriebssystem viel schneller gestartet. Hybridantriebe sind nicht viel teurer. Wenn Sie nicht so weit gehen möchten, besorgen Sie sich einfach eine Festplatte mit 7200 oder 10K U / min.


6
Die Festplattengeschwindigkeit ist der aktuelle Boot-Engpass.
Scottl

@scottl Da meine Festplatten SATA sind und meine Boot-Zeit der von @RobinJ gemeldeten 1:45 min ähnelt, bezweifle ich, dass es einen Grund gibt, Finger auf die Festplattenleistung zu lenken . Was ich jedoch sehe, ist, dass das Mounten von Festplatten und Freigaben synchron erfolgt, obwohl 1.) fastbootund 2.) diese Festplatten für den Startvorgang nicht wichtig sind.
0xC0000022L

13

Ich nehme an, Sie sprechen über Ubuntu 11.04?
Ich habe das schon ziemlich lange versucht, ohne viel Erfolg. Wie auch immer, diese Schritte machten einige Sekunden Unterschied:

1. Entfernen nicht benötigter Pakete

apt-get purge brltty brltty-x11 foo2zjs min12xxw ttf-indic-fonts-core ttf-kacst-one ttf-khmeros-core ttf-lao ttf-punjabi-fonts ttf-unfonts-core

2. Verwenden beider Kerne / CPUs während des Startvorgangs

TUN SIE DAS NUR, WENN SIE SICHERSTELLEN, DASS IHR COMPUTER MEHRERE CPUs / KERNE HAT!
Öffnen /etc/init.d/rcSie (Sie benötigen Root-Rechte) und ersetzen Sie CONCURRENCY=nonedurch CONCURRENCY=shell. Speichern Sie dann die Datei.

Aktualisieren

"CONCURRENCY = shell ist jetzt veraltet und hat den Alias ​​'makefile'. Seit 2010-05-14 ist der Standardwert 'makefile'."    ~ Jonathon

3. Deaktivieren Sie nicht benötigte Daemons

Dies ist etwas fortgeschrittener, also tun Sie es am besten nicht, wenn Sie nicht wissen, was dies bedeutet. Installieren Sie es bumund starten Sie es mit Root-Rechten. Deaktivieren Sie dann einfach die Kontrollkästchen vor den Dämonen, von denen Sie sicher sind, dass Sie sie nicht benötigen. Wenn Sie beispielsweise keinen Scanner haben, können Sie ihn deaktivieren saned. Und wenn Sie nie Bluetooth verwenden, können Sie es auch deaktivieren bluetooth.
Wenn Sie fertig sind, klicken Sie auf die Schaltfläche Übernehmen und dann auf Ja oder Nein (es spielt keine Rolle).

Starten Sie den Computer nach diesen Schritten zweimal neu . Aus irgendeinem Grund dauert der erste Neustart nach dem Ändern all dieser Optionen viel länger als die anderen, aber Sie sollten beim zweiten Neustart einen Unterschied feststellen .


3
CONCURRENCY = Shell ist jetzt veraltet und hat den Alias ​​'makefile'. Seit dem 14.05.2010 lautet die Standardeinstellung "makefile".
Jonathon

Kann ich auflisten (oder kurz erläutern), welche Pakete Sie entfernen möchten? (erster Punkt in Ihrer Erklärung). Denken Sie immer daran, dass es Leute gibt, die einfach kopieren und plötzlich nicht mehr vom Terminal usw. lesen können.
Willem Van Onsem

1
@ CommuSoft Da es sich bei dieser Antwort ohnehin um Ubuntu 11.04 handelt, ist es nicht ratsam, dieselbe Antwort auf neuere Versionen anzuwenden. Einige dieser Dinge funktionieren nicht mehr und andere können das System beschädigen.
RobinJ

9

Verwenden Sie das Bootchart , um detaillierte Diagramme darüber zu erstellen, was beim Booten Zeit kostet . Dies kann bei der Entscheidung, was geändert oder entfernt werden soll, hilfreich sein. Von https://wiki.ubuntu.com/BootCharting :

  • Installieren Sie die Pakete bootchart und pybootchartgui entweder über apt-get oder über Synaptic
  • Starten Sie Ihren Computer neu
  • Das Bootchart befindet sich in / var / log / bootchart als .png-Datei

Die moderne Entsprechung ist hier abgedeckt askubuntu.com/a/763070/178596
Wilf


3

Mein Computer bootete viel schneller, wenn ich eine alternative Installation durchführte und die GUI-Pakete manuell hinzufügte. Natürlich werden nur Dinge entfernt, die ich nicht brauche und die ich selbst hinzufügen kann. Wenn Sie mit "Wie kompiliere / installiere ich X-, Y- und Z-Apps" zurückkommen, ist dies möglicherweise keine gute Idee.


3

Für alle anderen, die damit zu kämpfen haben, installieren Sie einfach BUM und starten Sie es als Root-Benutzer (achten Sie darauf, gksudo anstelle von normalem sudo zu verwenden). Deaktivieren Sie dann den Dienst, den Sie deaktivieren möchten (ich habe Apache2, PostGreSQL-Daemon, MySQL, virtuelle Box usw. deaktiviert) und das war's! Sie können den Dienst vollständig löschen, wenn Sie ihn dort nicht möchten, das Deaktivieren jedoch mehr als ausreichend ist.

sudo apt-get install bum

Bildbeschreibung hier eingeben



2

Bearbeiten 2016.10.25: Wenn Sie nicht den Ruhezustand verwenden werden , weil Sie nicht oder Sie suspendieren bevorzugen / S3 , dann können Sie es in Grub deaktivieren , indem Sie das Hinzufügen noresumezu GRUB_CMDLINE_LINUX_DEFAULTin /etc/default/grubund laufen update-grub. Hier ist ein Beispiel für ein Chromebook N22 mit GalliumOS:

livewire@zc01:~$ systemd-analyze
Startup finished in 8.580s (kernel) + 4.160s (userspace) = 12.740s

livewire@zc01:~$ systemd-analyze
Startup finished in 3.595s (kernel) + 4.254s (userspace) = 7.850s

Ich fand das, weil ich neugierig auf den Teil "Ausführen von Skripten local-premount" während des Bootens war und ein wenig in initramfs nachforschte, was mich zu dieser Option führte, die ich zuvor nur verwendete, wenn mein System nicht aus dem Ruhezustand aufwachte.


Edit 06.08.2016: Sie sollten auf eine neuere Version Ihrer Linux-Distribution aktualisieren, die mit systemd geliefert wird.


Zutaten:

  • Holen Sie sich ein UEFI-System mit aufblasbarem UEFI-Code oder Coreboot
  • Besorgen Sie sich eine SSD
  • Installieren Sie Ubuntu im UEFI-Modus
  • Bonus: Komprimiere initramfs mit xz lzop und füge nur die benötigten Module hinzu. (Sie sollten wirklich wissen, was Sie tun, bevor Sie versuchen, das zu tun.)
  • Bonus: Entfernen Sie unnötige Daemons oder konfigurieren Sie sie so, dass sie schneller starten. Obwohl die Standardinstallation bereits gut genug ist.
    • Beispiel: Der Initialisierungsjob von btrfs, der nach Pools sucht, die bereitgestellt werden sollen, während auf diesem Gerät keine btrfs-Volumes vorhanden sind. Das hat mich dazu gebracht, btrfs-tools von einigen meiner Installationen zu entfernen.

Ich muss sagen, 32 Sekunden sind eigentlich gut genug. Mit herkömmlicher Hardware geht es nicht viel schneller. Mein neues Lenovo T530 benötigt die gleiche Zeit, um im Legacy-Modus zu starten. Mit der neuen Micro-SSD, die ich kürzlich installiert habe, und Ubuntu im UEFI-Modus sind es nur noch 15 Sekunden, nachdem Sie den Ein- / Ausschalter gedrückt haben, um sich anzumelden. Es fühlt sich immer noch so an, als würde es 5 Sekunden während des Posts verschwenden, aber es ist absolut keine Zeitverschwendung, das eigentliche Betriebssystem zu starten. Die Micro-SSD hat Übertragungsgeschwindigkeiten von 280 MB / s, eine 500 MB / s-SSD schafft es möglicherweise auf 7 Sekunden. Aber es liegt wirklich an den Herstellern, die Startzeit vor dem Betriebssystem zu reduzieren (POST und was nicht).

In Bezug auf Boot-Profiling und Shell-Parallelität. Diese Informationen können als datiert oder letztendlich als Mythos angesehen werden. Ich erinnere mich, dass das automatische Boot-Profiling oder etwas, das das Boot-Profiling überflüssig machte, vor Jahren zu Linux oder dem Kernsystem hinzugefügt wurde. Seitdem habe ich das Boot-Profiling nicht mehr verwendet, nachdem ein neues Kernel-Paket installiert wurde. Die Shell-Parallelitätseinstellung soll die Dinge kaputt machen, aber mit Systemd und Upstart sollte sie auch überflüssig sein und keine positiven Auswirkungen haben.


1

Müllabfuhr ist richtig. Mit Vorsicht fortfahren. Einige der Programme, die Sie sicher deaktivieren können, sind E-Mail-Popping-Programme wie Evolution, insbesondere wenn Sie Evolution zunächst nicht verwenden. Außerdem kann alles, was mit dem Drucken zu tun hat, deaktiviert werden, wenn Sie überhaupt nicht drucken. Gleiches gilt für Wireless, wenn Sie verkabelt sind.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.