Bisakah saya hibernasi Linux tanpa partisi swap?

30

Saya belum membuat partisi swap pada PC saya, karena a) Saya punya banyak RAM (8 GB) dan b) Saya punya harddisk besar yang tidak ingin saya potong kecil-kecil, jadi partisi terkecil saya adalah 50 GiB, dan saya sudah menggunakan itu untuk OS.

Sekarang, untuk hibernasi, Linux saya (Ubuntu Jaunty) memerlukan swap. Saya memiliki partisi 100 GB, jadi saya mengaturnya sebagai swap, tetapi saya tidak puas dengan itu. Ini hanya pernah digunakan untuk hibernasi (selalu ada banyak RAM gratis dan sistem tidak pernah melakukan swap) dan juga sedikit besar untuk swap. Juga, saya akhirnya akan membutuhkannya untuk hal lain.

Bagaimana saya bisa melakukan hibernate (suspend to disk) tanpa partisi swap di Ubuntu Jaunty?

Hanno Fietz
sumber
3
Di sini panduan resmi dari debian tentang hibernate tanpa swap: wiki.debian.org/Hibernation/Hibernate_Without_Swap_Partition
Francesco
Meskipun Anda memiliki banyak RAM, bertukar masih dapat membantu Anda juga untuk meningkatkan kinerja, ketika ruang kode aplikasi yang tidak digunakan (dan karenanya ditukar) digunakan untuk menyimpan data.
Michael Schmid

Jawaban:

23

Gagasan yang belum diuji: mengapa Anda tidak membuat pembungkus untuk s2diskatau utilitas mana pun yang menangguhkan disk yang mengelola file swap (sebagai lawan dari partisi swap) dan menghapusnya di resume?

  • Buat file swap: dd if=/dev/zero of=/swapfile bs=1024 count=8388608(8GB)
  • Siapkan file swap: mkswap /swapfile
  • Hanya ketika Anda perlu mengatur penangguhan Anda dapat mengaktifkannya: swapon /swapfile
  • Saat Anda melanjutkan, Anda dapat menonaktifkannya: swapoff /swapfile

Melanjutkan dari menukar file dimungkinkan, dan didokumentasikan di kernel.org

Robert Munteanu
sumber
Saya juga memikirkan file swap, tapi saya tidak tahu bagaimana meneruskannya ke kernel saat startup. Bisakah saya melakukan "resume = / path / to / file" seperti yang saya lakukan dengan perangkat blok?
Hanno Fietz
Lihat pembaruan saya dengan tautan ke dokumentasi tentang melanjutkan dari file swap.
Robert Munteanu
8
Tolong, tambahkan perintah chmod 0600 /swapfile. File swap yang dapat dibaca dunia adalah kerentanan lokal yang sangat besar.
user4035
2
Saya tahu ini sudah tua, tapi saya akan menggunakan 'truncate' bukan 'dd'. Tidak perlu benar-benar menulis apa pun ke disk.
Guido
4
Sebenarnya, Anda perlu menulis urutan sesuatu ke disk, membuat file dengan hasil terpotong swapon: /swapfile: skipping - it appears to have holes..
hlovdal
9

Anda mungkin punya dua cara di sini,

  1. Pertimbangkan swap-file alih-alih swap-partisi
    • Menggunakan kecil (dibandingkan dengan ukuran partisi Anda, tetapi cukup besar untuk memori) USB stick untuk partisi swap

Apa pun yang Anda lakukan, saya pikir a swapoffdan swaponsetelah resume akan bermanfaat.
Dan, karena Anda tidak benar-benar membutuhkan swap, Anda dapat meninggalkannya swapoffsetelah melanjutkan.

Pembaruan: Komentar ini memberikan poin bagus tentang hibernasi USB yang lambat.
Jadi, periksa dalam urutan bernomor - skema pertama memiliki catatan untuk hibernasi menggunakan file swap.


Karena penasaran,
saya ingin tahu mengapa Anda ingin berhibernasi ketika linux seperti Ubuntu dapat mematikan dan memulai dengan sangat cepat.
Saya menebak,

  • Anda memuat ram 8GB Anda dengan beberapa aplikasi dan meninggalkannya di sana
  • atau, Anda Bangun-di-LAN

Tapi, benarkah begitu? atau, apakah Anda memiliki alasan lain untuk hibernasi?

Saya menggunakan USB booting Ubuntu dan selalu mematikan.

nik
sumber
2
Menangguhkan ke USB flash stick akan sangat lambat .
Tadeusz A. Kadłubowski
6
Saya cenderung membuka banyak barang selama bekerja dan saya ingin semuanya kembali seperti hari berikutnya. Ubuntu cepat untuk memulai (sebenarnya, bagi saya tampaknya lebih cepat kemudian melanjutkan), tetapi Eclipse, Firefox dll. Mungkin tidak, dan aplikasi lain bahkan mungkin tidak menyimpan keadaan mereka saat menutup.
Hanno Fietz
2
@Hanno, Firefox juga memungkinkan Anda untuk menyimpan sesi hingga ke posisi gulir Anda. Jadi, Simpan-dan-Cukup bagus. Tidak yakin apa yang bisa dilakukan Eclipse.
nik
3
Firefox tidak ingat ruang kerja tempat Anda menggunakan masing-masing jendelanya, jadi ada PITA minor yang harus mendistribusikannya kembali ke tempatnya, setelah menunggu semuanya dimuat. Juga tidak ada cara untuk memulihkan keadaan seperti terminal windows.
intuited
Hibernasi memori 8GB penuh akan memakan waktu kurang dari satu menit dengan USB flash stick ini .
intuited
4

Ya, tapi bukan tanpa usaha. Ada 2 cara berbeda untuk hibernate (suspend-to-disk) di linux:

  1. swswap , yang termasuk dalam kernel
  2. tuxonice (sebelumnya suspend2), yang tidak.

Tuxonice tersedia sebagai patch ke kernel, dan akan membiarkan Anda menulis gambar yang ditangguhkan ke file biasa.

Dari Wikipedia :

TuxOnIce (formerly known as Suspend2) is an implementation of the suspend-to-disk (or hibernate) feature which is available as patches for the 2.6 Linux kernel. It was formerly known as 'swsusp'. During the 2.5 kernel era, Pavel Machek forked the original out-of-tree version of swsusp (then at approximately beta 10) and got it merged into the vanilla kernel, while development continued in the swsusp/Suspend2/TuxOnIce line. TuxOnIce includes support for SMP, highmem and preemption. Its major advantages over swsusp are:

    * It has an extensible architecture that allows for arbitrary transformations on the image and arbitrary backends for writing the image;
    * It prepares the image and allocates storage prior to doing any storage and accounts for memory and storage usage very carefully, thereby becoming more reliable;
    * Its current modules for writing the image have been designed for speed, combining asynchronous I/O, multithreading and readahead with LZF compression in its default configuration to read and write the image as fast as hardware is able;
    * It has an active community supporting it via a wiki, mailing lists and irc channel (see the TuxOnIce website);
    * It is more flexible and configurable (via a /sys/power/tuxonice interface);
    * Whereas the current swsusp (and uswsusp) implementations support writing the image to one swap device only, TuxOnIce supports multiple devices in any combination of swap files and swap partitions. It can also write the image to an ordinary file, thereby avoiding potential race issues in freeing memory when preparing to suspend.
    * It supports encryption by various methods;
    * It can store a full image of memory (resulting in a more responsive system post-resume), while uswsusp and swsusp write at most half the amount of RAM.

Karena ini tidak termasuk dalam kernel default, Anda sayangnya harus mengambil patch kernel yang tersedia untuk Jaunty dan mengkompilasi sendiri kernel tersebut.

Ada beberapa instruksi yang diperluas di sini , tetapi Anda mungkin ingin mencoba saran Robert sebelum berkeliaran di jalan ini, kecuali jika Anda sudah terbiasa menggulung gambar kernel Anda sendiri.

Nagul
sumber
2
Yah, aku telah handrolled sejumlah kernel (Aku sudah menjadi penggemar Gentoo untuk beberapa tahun), tapi ada alasan mengapa saya beralih ke Ubuntu ...;)
Hanno Fietz
3

Seperti yang Joel dan Jeff telah diskusikan di podcast , mematikan swap umumnya bukan ide yang baik - bahkan jika itu akan sia-sia (yang tidak) - ruang disk saat ini sangat murah sehingga meninggalkannya tidak memerlukan biaya apa pun. Anda bisa mendapatkan pertunjukan dengan harga kurang dari sepuluh sen (Euro sen, yaitu)!

kutipan:

Atwood: Saya pikir bahwa setiap geek di beberapa titik melewati proses pemikiran ini: Saya mendapat berton-ton memori, mungkin saya dapat mengaktifkan file halaman saya. Saya sebenarnya punya entri blog tentang ini. ... Intinya adalah: itu tidak pernah sepadan.

Dengarkan podcast untuk lebih banyak percakapan (mulai sekitar menit 59), atau baca pertanyaan di serverfault yang tertaut pada halaman podcast (pertanyaan 23621). Mereka berbicara tentang file halaman windows, tetapi argumennya sama-sama valid untuk UNIX (walaupun mereka dapat mengelola memori dengan cara yang berbeda).

0x89
sumber
1
Yah, saya tidak keberatan memiliki swap on, pada kenyataannya, setup saya saat ini hanya menggunakan partisi 100 manggung cadangan sebagai swap. Namun, yang saya pikirkan adalah memiliki partisi swap . 100 gig swap hanyalah omong kosong total, dan saya tidak ingin memiliki partisi kecil hanya untuk swap. Swapfile sangat bagus untuk saya, terima kasih untuk jawaban Robert dan nik, saya sekarang juga tahu bagaimana menggunakannya untuk hibernasi, jadi saya akan menggunakannya.
Hanno Fietz
4
Apa masalah dengan memiliki partisi "kecil"? Btw. Saya tidak akan menganggap partisi 8GB mungil sama sekali - saya telah menggunakan instalasi linux selama bertahun-tahun yang hidup pada partisi / yang lebih kecil dari itu. Dan PC pertama yang saya gunakan memiliki hard drive 20MB ..
0x89
1
Sebenarnya, Linux mengelola memori dengan cara yang sangat berbeda dengan Windows. Bahkan pada laptop lama saya dengan 2GB ram swap hampir tidak digunakan, 200MB diturunkan ada nilai maksimum yang saya lihat
vava
@vava: Anda mungkin benar, saya sedikit menyesuaikan jawaban saya. Tetapi kenyataan bahwa Anda melihat 200MB diturunkan ke swap Anda sebenarnya mendukung poin saya ..
0x89