Bagaimana cara meningkatkan kecepatan boot?

67

Saya telah melihat banyak video yang membuat Ubuntu lebih cepat, tetapi metode ini hanya membuat kinerja desktop lebih cepat.

Saya ingin mempercepat boot komputer saya. Apakah ada yang bisa saya lakukan untuk membuat boot Ubuntu secara signifikan lebih cepat?

kacang
sumber
5
Sistem yang menggunakan systemd(sejak 15.04 IIRC) hadir dengan alat systemd-analyzeyang dapat membantu Anda menganalisis proses mana yang membutuhkan waktu berapa lama untuk boot. Lihat man systemd-analyzeuntuk mempelajari semua pilihannya, pada Anda mungkin akan menggunakan sebagian besar systemd-analyze blame.
Byte Commander
@ByteCommander Jawaban langkah demi langkah akan melakukan pekerjaan itu.
Anwar

Jawaban:

28

Secara umum, semakin sedikit program yang Anda muat saat bootup, semakin cepat sistem Anda seharusnya. Coba BUM (dari pusat perangkat lunak) untuk menonaktifkan beberapa layanan yang tidak dibutuhkan, dan juga pastikan Anda tidak menginstal program yang tidak perlu yang akan dimuat saat booting. Terakhir, menggunakan solid state drive (SSD) sebagai perangkat boot Anda akan secara signifikan meningkatkan bootime.

Oh satu hal lagi, tipe sistem file Anda membuat perbedaan juga. EXT4 telah mengalami beberapa regresi kinerja (menurut phoronix) tetapi saya masih menemukan EXT4 bagus untuk booting cepat.

RolandiXor
sumber
Anda dapat menambahkan layanan mana yang dapat dinonaktifkan yang biasanya tidak berguna?
Philippe Gachoud
@ Philhippippagoud aku benar-benar tidak ingat sekarang. Ini dari 2010!
RolandiXor
Saya menggunakan SSD yang kompatibel terbalik dan papan saya adalah SATA. Sepatu botnya cepat sekali.
userDepth
17

Saya hanya berlari melintasi ini beberapa hari yang lalu. Instruksi "e4rat" Di Sini

Aplikasi kecil ini luar biasa.

Saya mengambil prosesor AMD sempron tunggal yang berjalan pada 2800+ yang biasanya mem-boot Natty pada 1,45 menit menjadi 27,855 detik.

Saya memiliki boot-chart untuk membuktikannya. Ini gila! masukkan deskripsi gambar di sini

Buntut cincin
sumber
1
Ini sangat membantu !!!
user12164
Semakin banyak orang perlu tahu tentang e4rat, ini adalah alat yang fantastis yang membuat peningkatan terbesar dari berbagai tips dan trik.
Victor Bjelkholm
3
Apakah masih sah untuk 12,04? Saya mendengar itu akan menyebabkan masalah dengan ureadahead. Apakah ini benar?
user138784
@ user138784 seperti yang saya mengerti, ini karena ureadahead melakukan pekerjaan yang sama seperti e4rat, jadi mereka jelas konflik. Tapi e4rat untuk beberapa alasan tampaknya lebih baik daripada ureadahead. Juga, mungkin akan berguna - e4rat untuk beberapa alasan tidak berfungsi secara default, perlu beberapa penyesuaian , jika tidak file log tidak dibuat.
Hi-Angel
e4rat tidak berfungsi di 16.04
Anwar
17

Meningkatkan waktu booting sangat terkait dengan menonaktifkan / mengelola layanan, tetapi jawaban saat ini kurang detail dalam menonaktifkan layanan yang digunakan systemd.

Apa itu systemd?

Singkatnya, systemd adalah manajer sistem dan layanan untuk Linux, kompatibel dengan skrip init SysV dan LSB. Lebih lanjut tentang ini dapat dibaca dari halaman proyek resmi .

Periksa layanan mana yang paling memakan waktu

Gunakan perintah berikut untuk memeriksa layanan mana yang paling memakan waktu

systemd-analyze blame

Menonaktifkan mulai otomatis layanan selama boot

Jika Anda ingin menonaktifkan layanan mulai otomatis saat boot, Anda dapat menggunakan perintah berikut

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

Namun, Anda mungkin ingin melihat layanan lain mana yang membutuhkan layanan tersebut. Untuk memeriksa gunakan perintah berikut

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

Catatan: Ganti some-time-eater-service.servicedengan nama layanan yang sebenarnya seperti [email protected].

Perhatikan bahwa, menonaktifkan mulai otomatis tidak membuat layanan tidak dapat dimulai. Layanan dapat dimulai setelah boot ketika persyaratan muncul. Jika Anda ingin sepenuhnya menonaktifkannya, baca bagian selanjutnya

Menonaktifkan layanan sepenuhnya.

Jika Anda ingin menonaktifkan layanan sepenuhnya sehingga tidak dapat dimulai, Anda harus menggunakan maskalih-alih menonaktifkan. Seperti ini

sudo systemctl mask <SERVICE-NAME>

Ganti <SERVICE-NAME>dengan nama layanan yang sebenarnya

Perbedaan antara maskdan disablemask membuat layanan sepenuhnya dinonaktifkan, Anda tidak dapat memulainya. Anda harus unmaskmemulainya dengan systemd (Anda masih bisa mulai dengan service). Tetapi disablecukup nonaktifkan layanan secara otomatis, Anda dapat memulainya nanti.

Misalnya, Setelah menyamarkan [email protected]layanan saya , ketika saya ingin memulainya dengan systemctlpesan berikut ditampilkan

Failed to start [email protected]: Unit [email protected] is masked.

Alat GUI

Salah satu Alat GUI yang menurut saya menarik adalah systemd-manager, masih dalam tahap pengembangan dan belum dibuat jalurnya ke repositori Ubuntu Resmi. Namun, Anda dapat menginstalnya dengan sangat mudah dari halaman github Systemd-Manager . Rilis berisi paket .deb, yang sangat mudah dipasang. Anda membutuhkan GTK-3.16 atau lebih tinggi.

Setelah mengunduh dan menginstal, Anda dapat memulainya dengan systemd-managerperintah. Mulai itu.

Aplikasi ini memiliki dua tampilan utama. Satu adalah Systemd Unit dan yang lainnya adalah Systemd Analyze . Anda dapat mengubahnya dengan label di sudut kiri atas. Lihat tangkapan layar.

Beralih Antara Tampilan

Dan Ada tiga jenis unit yang bisa Anda kelola. Servcies , Soket dan Pengatur Waktu . Anda dapat beralih di antara mereka. Lihat tangkapan layar.

Beralih di antara tipe unit

Menampilkan informasi

Tiga tab utama adalah File , Jurnal , Ketergantungan .

  • File adalah file konfigurasi unit yang dipilih.
  • Jurnal adalah output live systemd sambil mengaktifkan / menonaktifkan / memulai / menghentikan unit
  • Ketergantungan menunjukkan layanan atau unit apa yang harus diaktifkan untuk memulai layanan yang dipilih.

Indikator Status

Ada dua kolom di sebelah nama unit untuk menunjukkan Status. Satu kiri menunjukkan apakah unit itu diaktifkan untuk memulai saat boot dan yang kanan menunjukkan apakah unit itu sedang berjalan. Lihat mereka dalam gambar.

Diaktifkan saat status boot

Status sedang berjalan

Sakelar Kontrol

Untuk toogle diaktifkan saat boot atau menjalankan status, ada dua tombol toogle di sudut kanan atas. Diaktifkan berarti unit akan mulai dan boot. Lihat mereka dalam gambar.

Toogle beralih untuk mengaktifkan / memulai

Tampilan lengkap aplikasi ditunjukkan di bawah ini

Tampilan Lengkap

Semoga ini bisa membantu. Saya mendapat manfaat dari jawaban lain tentang systemd, tetapi benar-benar diperlukan untuk mengumpulkan informasi di satu Tempat.

Informasi lebih lanjut :

Untuk mengetahui lebih banyak tentang systemdAnda dapat mengunjungi tautan ini:

Jawaban lain memiliki saran yang berbeda. Termasuk membeli SSD, meningkatkan RAM dll. Jika Anda mampu, itu pasti akan membantu, terutama saran SSD.

Anwar
sumber
15

Beralih dari drive magnetik ke Solid State Drive, atau Magnetic & Solid State Hybrid drive. Itu akan membuat boot OS apa pun jauh lebih cepat. Drive hibrida tidak jauh lebih mahal. Jika Anda tidak ingin melangkah sejauh itu, dapatkan saja hard drive 7200 atau 10K RPM.

Jim McKeeth
sumber
6
Kecepatan disk adalah bott-bottleneck saat ini.
scottl
@scottl diberikan disk saya yang SATA dan waktu boot saya mirip dengan 1:45 min dilansir @RobinJ, saya ragu bahwa ada setiap alasan untuk menunjuk jari untuk kinerja disk pada khususnya. Satu hal yang saya lihat, bagaimanapun, adalah pemasangan disk dan pembagian dilakukan secara sinkron, meskipun 1.) menggunakan fastbootdan 2.) disk tersebut tidak penting untuk proses boot.
0xC0000022L
13

Saya berasumsi Anda sedang berbicara tentang Ubuntu 11.04?
Saya sudah mencoba ini sejak lama, tanpa banyak keberhasilan. Bagaimanapun, langkah-langkah ini membuat perbedaan beberapa detik:

1. Menghapus paket yang tidak dibutuhkan

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. Menggunakan kedua core / CPU selama proses boot

HANYA LAKUKAN JIKA ANDA MEMASTIKAN KOMPUTER ANDA MEMILIKI GANDA CPU / CORES!
Terbuka /etc/init.d/rc(Anda akan membutuhkan hak akses root) dan mengganti CONCURRENCY=nonedengan CONCURRENCY=shell. Kemudian simpan file tersebut.

Memperbarui

"CONCURRENCY = shell sekarang sudah usang dan alias 'makefile'. Sejak 2010-05-14 defaultnya adalah 'makefile'."    ~ Jonathon

3. Menonaktifkan daemon yang tidak dibutuhkan

Ini sedikit lebih maju, jadi sebaiknya jangan melakukannya jika Anda tidak tahu apa artinya ini. Instal bum, dan mulai dengan root privilege. Kemudian lepaskan saja kotak-kotak di depan daemon yang Anda yakin tidak perlu. Misalnya, ketika Anda tidak memiliki pemindai, Anda dapat menonaktifkan saned. Dan jika Anda tidak pernah menggunakan bluetooth, Anda dapat menonaktifkan bluetoothjuga.
Setelah selesai, tekan tombol Terapkan dan klik ya atau tidak (tidak masalah).

Setelah menyelesaikan langkah-langkah ini, reboot dua kali . Untuk alasan tertentu, reboot pertama setelah mengubah semua opsi ini membutuhkan waktu lebih lama daripada yang lain, tetapi Anda akan melihat beberapa perbedaan selama reboot kedua.

RobinJ
sumber
3
CONCURRENCY = shell sekarang sudah usang dan alias 'makefile'. Sejak 2010-05-14 defaultnya adalah 'makefile'.
Jonathon
Apakah mungkin untuk membuat daftar (atau memberikan penjelasan singkat) paket mana yang Anda sarankan untuk dihapus? (poin pertama dalam penjelasan Anda). Selalu ingat bahwa ada orang yang hanya melakukan copy-paste dan tiba-tiba tidak dapat membaca dari terminal dll.
Willem Van Onsem
1
@CommuSoft Karena jawaban ini tentang Ubuntu 11.04, tetap tidak disarankan untuk menerapkan jawaban yang sama ke versi yang lebih baru. Beberapa hal ini tidak akan berfungsi lagi, dan hal-hal lain dapat merusak sistem.
RobinJ
9

Gunakan bootchart untuk menghasilkan grafik terperinci tentang apa yang membutuhkan waktu selama boot. Mungkin membantu dalam memutuskan apa yang akan diubah atau dihapus. Dari https://wiki.ubuntu.com/BootCharting :

  • Instal paket bootchart dan pybootchartgui , baik melalui apt-get atau Synaptic
  • Nyalakan ulang mesin Anda
  • Bootchart ada di / var / log / bootchart sebagai file .png
David Andersson
sumber
Setara modern dibahas di sini askubuntu.com/a/763070/178596
Wilf
3

Mesin saya mem-boot WAY lebih cepat jika saya melakukan instalasi alternatif dan menambahkan paket GUI secara manual. Tentu saja, itu hanya menghapus hal-hal yang tidak saya butuhkan sehingga saya mampu menambahkan diri saya sendiri. Jika Anda akan kembali dengan "bagaimana cara mengkompilasi / menginstal aplikasi X, Y, dan Z" ini mungkin bukan ide yang baik.

RobotHumans
sumber
3

Untuk orang lain yang kesulitan dengan ini, cukup instal BUM dan mulai pengguna root (hati-hati untuk menggunakan gksudo, bukan sudo normal). Kemudian hapus centang pada layanan yang ingin Anda nonaktifkan (saya menonaktifkan Apache2, daemon PostGreSQL, MySQL, virtual box et al) dan hanya itu! Anda dapat menghapus layanan sepenuhnya jika Anda tidak menginginkannya di sana tetapi menonaktifkannya lebih dari cukup.

sudo apt-get install bum

masukkan deskripsi gambar di sini

Stefano Mtangoo
sumber
2

Sunting 25.10.2016: Jika Anda tidak akan menggunakan hibernasi karena Anda tidak bisa atau lebih suka menangguhkan / S3 maka Anda dapat menonaktifkannya di Grub dengan menambahkan noresumeke GRUB_CMDLINE_LINUX_DEFAULTdalam /etc/default/grubdan menjalankan update-grub. Berikut adalah contoh di Chromebook N22 yang menjalankan 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

Saya menemukan ini karena saya ingin tahu tentang bagian "Menjalankan skrip local-premount" selama boot dan menyelidiki sedikit di initramfs yang mengarahkan saya ke opsi ini yang sebelumnya saya hanya gunakan ketika sistem saya tidak bisa bangun dari hibernasi.


Sunting 06.08.2016: Anda harus memperbarui ke versi terbaru dari distribusi Linux Anda yang datang dengan systemd.


Bahan:

  • Dapatkan sistem UEFI dengan kode UEFI bebas mengasapi atau Coreboot
  • Dapatkan SSD
  • Instal Ubuntu dalam mode UEFI
  • Bonus: Kompres initramfs dengan xz lzop dan hanya sertakan modul yang diperlukan. (Anda harus benar-benar tahu apa yang Anda lakukan sebelum mencoba melakukan itu.)
  • Bonus: Hapus daemon yang tidak perlu atau konfigurasikan untuk memulai lebih cepat. Padahal instal default sudah cukup baik.
    • Contoh: pekerjaan init btrf 'yang mencari kumpulan untuk dipasang sementara tidak ada volume btrf di perangkat ini. Ini membuat saya menghapus btrfs-tools dari beberapa instalasi saya.

Saya harus mengatakan 32 detik sebenarnya cukup baik. Ini tidak akan jauh lebih cepat dengan perangkat keras tradisional. Lenovo T530 baru saya membutuhkan waktu yang sama untuk boot dalam mode lawas. Dengan SSD mikro yang baru saya instal dan Ubuntu dalam mode UEFI, 15 detik dari menekan tombol daya untuk login. Masih terasa seperti membuang-buang waktu 5 detik selama posting, tetapi sama sekali tidak membuang waktu untuk memulai sistem operasi yang sebenarnya. Micro SSD memiliki kecepatan transfer 280 MB / s, mungkin 500 MB / s SSD dapat mencapai 7 detik. Tapi itu benar-benar terserah produsen untuk mengurangi waktu boot pra OS (POST dan apa yang tidak).

Mengenai boot profiling dan shell concurrency. Informasi tersebut dapat dilihat sebagai tanggal atau akhirnya mitos. Saya ingat bahwa booting profil otomatis atau sesuatu yang membuat booting profil benar-benar berlebihan ditambahkan ke Linux atau sistem inti bertahun-tahun yang lalu, sejak itu saya tidak menggunakan booting profil lagi setelah paket kernel baru diinstal. Pengaturan shell concurrency dikatakan dapat memecahkan banyak hal, tetapi dengan Systemd dan Upstart itu harus berlebihan juga, dan seharusnya tidak memiliki efek positif.

LiveWireBT
sumber
1

Garbagecollector benar. Lanjutkan dengan hati hati. Tetapi beberapa program yang dapat Anda nonaktifkan dengan aman adalah utilitas popping email seperti Evolution, terutama jika Anda tidak menggunakan Evolution pada awalnya. Selain itu, apa pun yang terkait dengan pencetakan dapat dinonaktifkan jika Anda tidak mencetak sama sekali. Sama untuk Nirkabel jika Anda terhubung dengan kabel.

jfmessier
sumber