Перемещение системной папки в ОС Linux

Возможна такая ситуация, когда место на жестком диске заканчивается и перемещение профиля пользователя на другой диск не помогает. Тогда возникает необходимость в переносе более-менее весомой папки на второй диск системы.

В моем случае заканчивалось место на первом SSD-диске на нетбуке и пришлось смотреть, какую директорию можно переместить на другой SSD-диск. С помощью анализатора использования дисков (Baobab) просканировал файловую систему и выяснилось, что наиболее оптимальным вариантом будет переместить системную папку «/usr».

Узнать размер папки можно следующей командой:

$ du -hs /usr

Итак, инструкция по переносу папки «/usr»:

1. Запускаем редактор разделов GParted и видим куда смонтирована файловая система ОС.
В моем случае система установлена на диске /dev/sda (тип файловой системы — ext4). Будем переносить папку «/usr» на диск /dev/sdb.

2. На втором диске создаем раздел для системной папки «/usr». Размер раздела зависит от пакетов, которые будут в дальнейшем устанавливаться в систему. В современных linux-системах с графическим интерфейсом размер этого каталога спокойно может достигать 10 ГБ. Лучше конечно выставить для будущего раздела объем в разы больший — 15-30 ГБ, но если место не позволяет, можно и 6-7 ГБ определить на эту папку.
После определения с размером форматируем раздел в такой же ФС как и в корне (/dev/sdb1 — 10 ГиБ — ext4).

3. Создаем каталог /mnt/usr.tmp и монтируем в него только что созданную файловую систему:

$ sudo mkdir /mnt/usr.tmp
$ sudo mount /dev/sdb1 /mnt/usr.tmp

4. Копируем содержимое со всеми атрибутами:

$ sudo cp -a /usr/* /mnt/usr.tmp

5. Размонтируем временный каталог и удалим временную папку:

$ sudo umount /dev/sdb1
$ sudo rm -r /mnt/usr.tmp

6. Прописываем в конфигурационном файле откуда брать перенесенную папку системе.

Узнаем UUID раздела /dev/sdb1 либо через GParted (правая кнопка мыши по разделу — Информация), либо командой:

$ ls -l /dev/disk/by-uuid

176326a9-9731-4240-8d38-142d6ed2b3a3

Дописываем в файл /etc/fstab строку монтирования раздела при запуске системы:

$ sudo gedit /etc/fstab

UUID=176326a9-9731-4240-8d38-142d6ed2b3a3 /usr ext4 defaults 0 1

Три последних атрибута можно скопировать как у «/» (корня всей системы).

7. Перезагружаем систему.

8. Проверяем корректность монтирования перенесенной директории. В ее содержимом непременно должен быть каталог «lost+found», наличие которого означает, что данные этой папки находятся на вновь созданном разделе:

$ ls /usr

9. В кульминации перенесения системной директории можно удалить содержимое исходного каталога:

$ sudo mount /dev/sda1 /mnt
$ sudo rm -r /mnt/usr/*
$ sudo umount /mnt

З.Ы. Аналогичным способом можно перенести в линуксе другую системную директорию. Вторая по объему данных обычно значится системная папка «/var».

  1. женеч

    Прекрасно!

  2. Спасибо за подробную инструкцию!

Оставить комментарий