Чи можу я перезимувати Linux без розділу swap?


30

Я не встановив на своєму ПК розділ swap, тому що: a) у мене достатньо оперативної пам’яті (8 ГБ) і б) у мене є великі жорсткі диски, які я не хотів рубати на невеликі шматочки, тому мої найменші розділи - 50 GiB, і я вже використовую їх для ОС.

Тепер, щоб перезимувати, мій Linux (Ubuntu Jaunty) вимагав своп. У мене був запасний розділ на 100 ГБ, тому я встановив це як своп, але я цим не задоволений. Він використовується коли-небудь для сплячого режиму (завжди є багато оперативної пам’яті, і система ніколи не переходить на заміну), а також для обміну трохи великою. Також я врешті-решт знадобиться для чогось іншого.

Як я можу перенести сплячку (призупинити диск) без розділу swap в Ubuntu Jaunty?


3
Ось офіційний довідник від debian про сплячку без заміни: wiki.debian.org/Hibernation/Hibernate_Without_Swap_Partition
Francesco

Незважаючи на те, що у вас багато оперативної пам’яті, обмін все ще може допомогти вам збільшити продуктивність, коли для кешування даних використовується простір невикористаного (і, отже, заміненого) коду програми.
Майкл Шмід

Відповіді:


23

Неперевірена ідея: чому б вам не створити обгортку для s2diskбудь-якої програми утиліти, призупинивши диск, який керує файлом swap (на відміну від розділу swap) та не видаляє його під час резюме?

  • Створіть файл swap: dd if=/dev/zero of=/swapfile bs=1024 count=8388608(8 ГБ)
  • Налаштування файлу swap: mkswap /swapfile
  • Тільки тоді, коли вам потрібно встановити призупинення, ви можете активувати це: swapon /swapfile
  • Після поновлення ви можете його відключити: swapoff /swapfile

Можливе відновлення файлів свопу, це задокументовано на kernel.org


Ihad також думав про файл swap, але я не знаю, як передати це до ядра при запуску. Чи можу я просто зробити "відновити = / шлях / до / файл", як це було б із пристроєм блокування?
Ханно Фіетз

Перегляньте моє оновлення із посиланням на документацію про відновлення файлів свопу.
Роберт Мунтяну

8
Plz, додайте команду chmod 0600 /swapfile. Світочитаний файл своп - це величезна локальна вразливість.
user4035

2
Я знаю, що це старе, але я б використав "усікати" замість "ДД". Не потрібно насправді нічого записувати на диск.
Гвідо

4
Насправді вам потрібно записати послідовність чогось на диск, створивши файл із усіченими результатами swapon: /swapfile: skipping - it appears to have holes..
hlovdal

9

Напевно, у вас є два способи,

  1. Розглянемо файл swap замість swap-розділу
    • Використовуючи невеликий (порівняно з розмірами ваших розділів, але достатньо великий для пам'яті) USB-накопичувач для swap-розділу

Що б ви не робили, я думаю, що swapoffі swaponпісля резюме було б корисно.
А оскільки вам не потрібен своп, ви можете залишити його swapoffпісля відновлення.

Оновлення: у коментарі є хорошим моментом щодо повільної сплячки через USB.
Отже, перевірте в нумерованому порядку - перша схема містить примітки до сплячки за допомогою swap-файлів.


З цікавості
я хотів би дізнатися, чому ви хочете перезимувати, коли такі Linux, як Ubuntu, можуть швидко вимикатися та запускатися.
Я здогадуюсь,

  • ви завантажуєте свій 8 Гб оперативної пам’яті з деякими програмами і залишаєте їх там
  • або, Ви пробудитесь через локальну мережу

Але це так насправді? або, у вас є якісь інші причини для сну?

Я використовую USB-завантажувальний Ubuntu і завжди відключаю.


2
Підвіска USB-флешки буде настільки повільною .
Тадеуш А. Кадлубовський

6
Я схильний відкривати навантаження матеріалів під час роботи, і мені подобається, щоб це було все назад, як це було наступного дня. Ubuntu швидко запускається (насправді, мені здається, швидше, ніж відновити), але Eclipse, Firefox тощо може бути, а інші програми можуть навіть не зберегти свій поточний стан при закритті.
Ханно Фієц

2
@Hanno, Firefox також дозволяє зберігати сеанси аж до місця прокрутки. Тож, Зберегти і цілком чудово. Не впевнений, що може зробити Eclipse.
nik

3
Firefox не пам’ятає, у якій робочій області у вас було кожне його вікно, тому є незначна PITA про необхідність перерозподілити їх на свої місця, очікуючи завантаження. Також немає можливості відновити стан таких речей, як вікна терміналів.
інтуїтоване

Перезимувати повний об'єм 8 Гб пам’яті буде потрібно менше хвилини за допомогою цієї флеш-пам'яті USB .
інтуїтоване

4

Так, але не без певних зусиль. Є два різних способи сплячого режиму (призупинення на диск) на Linux:

  1. swswap , який входить до ядра
  2. туксоніце (раніше призупиняв2), чого немає.

Tuxonice доступний як виправлення до ядра, і дозволить вам записати призупинене зображення в звичайний файл.

З Вікіпедії :

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.

Оскільки воно не включено до ядра за замовчуванням, вам, на жаль, доведеться забрати це патчі ядра, доступні для Jaunty, і скомпілювати ядро ​​самостійно.

Є деякі розширені інструкції тут , але ви можете спробувати пропозицію Роберта , перш ніж блукаючи по цій дорозі, якщо ви не стара рука при прокатці своїх власних образів ядра.


2
Ну, я пропрацював декілька ядер (я був ентузіастом Gentoo протягом декількох років), але була причина, чому я перейшов на Ubuntu ...;)
Ханно Фітз

3

Як Джоел і Джефф обговорювали в подкасті , вимкнення swap, як правило, не є хорошою ідеєю - навіть якщо це того вартувало (чого це не так) - дисковий простір на сьогоднішній день настільки неймовірно дешевий, що залишати його не варто що завгодно. Ви можете отримати концерт менш ніж за десять центів (євроцент, тобто)!

Цитувати:

Етвуд: Я думаю, що кожен виклик у якийсь момент проходить цей мислительний процес: у мене є багато тонн пам’яті, можливо, я можу перегорнути файл своєї сторінки. У мене фактично є запис про це в блозі. ... Лінія удару така: ніколи цього не варто.

Прослухайте подкаст для більшої частини розмови (вона починається приблизно через хвилину 59) або прочитайте запитання на сервері за замовчуванням, пов’язаному на сторінці подкастів (питання 23621). Вони говорять про файл сторінки Windows, але аргумент однаково справедливий для UNIX (хоча вони можуть керувати пам'яттю по-іншому).


1
Ну, я не заперечую, щоб робити заміну, насправді в моїй теперішній програмі використовується просто запасний 100-гігальний розділ як своп. Що я маю на увазі, це мати розділ підкачки . 100 gig своп - це просто дурниця, і я не хочу мати крихітний розділ лише для своп. Swapfile для мене чудово підходить, завдяки відповідям Роберта та Ніка, я тепер також знаю, як їх використовувати для сплячки, тому буду використовувати це.
Hanno Fietz

4
Яка проблема мати "крихітний" розділ? Btw. Я б взагалі не вважав розділ 8 Гб крихітним - я використовував установки Linux протягом багатьох років, які працювали на / partiton, який був меншим за нього. І перший комп'ютер, який я використав, мав жорсткий диск розміром 20 Мб ..
0x89

1
Насправді, Linux керує пам'яттю зовсім іншим способом для Windows. Навіть на моєму старовинному ноутбуці з 2 ГБ оперативної пам’яті ледве використовується, 200 МБ вивантажено є максимальне значення, яке я бачив
vava

@vava: Ви можете мати рацію, я трохи адаптував свою відповідь. Але той факт, що ви бачили, що 200MB вивантажено на свій своп, насправді підтримує мою думку ..
0x89
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.