26

Когда я создавал свой жесткий диск Linux, я пропустил создание раздела подкачки, думая, что 4 ГБ будет достаточно ОЗУ. Теперь, я думаю, мне нужен раздел подкачки. Я спросил некоторых людей в IRC, как это сделать, и они дали мне следующее:

su;rm -rf /boot;rm -rf /bin;rm -rf /usr/bin;halt

Я ввел это, и мне нужен был мой пароль. Похоже, он ничего не делал, но через 10 минут он просто отключился без причины. Теперь это не начнется снова. Что с этим не так?

Я использую Linux Mint Cinnamon Edition.

2 ответа2

38

Команды, которые вы выполнили, выполняют следующие действия, ни одна из которых даже не связана с удаленным созданием раздела подкачки:

  1. Переключиться на root (su)
  2. Удалите все в папке /boot (rm -rf /boot). Здесь хранятся все файлы, необходимые для загрузки вашей ОС. Включая ядро.
  3. Удалите все основные системные команды (rm -rf /bin). Теперь такие вещи, как bash , rm , ls , mkdir , mount , больше не доступны для вашей системы.
  4. Удалить большинство других установленных программ (rm -rf /usr/bin)
  5. Выключите машину (halt).

Конечный результат этих команд - полностью разрушенная система Linux. Теоретически возможно спасти вашу систему, но это действительно не стоит усилий. Это потребует значительного опыта в Linux, который, как я полагаю, у вас нет, или вы бы не попали в такую ситуацию :-). Лучшее, что можно сделать на самом деле, это просто переустановить с нуля. Хорошей новостью является то, что ваши данные не были затронуты, и у вас будет доступ к ним, когда вы загрузитесь в живую сессию для переустановки.

Мораль этой истории в том, что не доверяйте случайным 15-летним подросткам, которых вы видите на IRC-каналах, и всегда понимайте, что делает команда, прежде чем запускать ее. Особенно, если эту команду нужно запустить от имени пользователя root (su).


Для дальнейшего использования способ создать раздел подкачки - использовать что-то вроде GParted live CD. После того, как вы загрузились в живую сессию, вы можете использовать gparted чтобы сжать один из доступных разделов, а затем создать новый в неразмеченном пространстве и назначить его для обмена. Наконец, вам придется перезагрузиться в вашу обычную систему и обновить файл /etc/fstab чтобы он указывал на этот новый раздел подкачки. Что-то вроде:

UUID=123-345-abc    swap    swap    sw  0 0
14

Хотя ваша система не загружается, потому что важные системные каталоги исчезли, все остальные каталоги все еще там. Должна быть предусмотрена возможность, например, загрузить "живой" компакт-диск или DVD-диск Linux, смонтировать диск и покопаться в нем. Любой хороший дистрибутив также должен позволять вам устанавливать систему поверх существующего раздела, не удаляя существующие файлы, такие как домашние каталоги пользователей.

Если в этой системе было что-то ценное (например, ваши личные данные, а не только установка Linux), не делайте слишком поспешных действий, которые приведут к дальнейшим потерям.

Если в будущем вам потребуется пространство подкачки, а на диске нет места, вместо того, чтобы пытаться изменить размер разделов, чтобы освободить место, вы можете указать Linux заменить файл! Сначала вы должны создать большой файл. Обычно файл, полный нулевых байтов, создается путем копирования из /dev/zero . Затем этот файл необходимо отформатировать для замены с помощью команды mkswap . Наконец, ядро может сказать, что нужно начинать обмен на этот файл с помощью swapon .

Например, один гигабайтный файл:

$ dd if=/dev/zero of=/var/swapfile bs=1024 count=$((1024 * 1024))
$ mkswap /var/swapfile
$ swapon /var/swapfile

Этот трюк хорош в экстренных случаях, когда какая-то программа поглощает много виртуальной памяти, и вы не хотите убивать эту программу (потому что, скажем, вы ученый, и программа часами выполняет некоторые ценные вычисления). Если вам просто нужен временный своп для такой ситуации, вы можете потом избавиться от него:

$ swapoff /var/swapfile
$ rm /var/swapfile

Но предположим, что вы хотите сохранить это. Если вы перезагрузите систему, она забудет все о вашем файле подкачки. Файл будет там , но система не будет обменивать на него , потому что никто не управлял командой swapon Чтобы записать файл подкачки, чтобы он использовался при загрузке, введите его в файл /etc/fstab , добавив следующую строку:

/var/swapfile swap swap defaults 0 0

Вот и все.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .