Linux изменить точку монтирования home

Как изменить точки монтирования

L-образная направляющая и усиленные шпильки

Я не очень глубоко разбираюсь в этом монтировании / отключении в Linux, поэтому вот мой вопрос:

С участием df -h Я получаю следующий обзор:

Я использую этот компьютер в качестве веб-сервера, где все связанные с Интернетом материалы находятся под /srv/ . Поскольку это часть / Здесь нет места на диске. я видел /home имея 44 ГБ доступного веб-пространства, что в моем случае — полная чушь. Так что я хочу иметь /home не как собственный раздел (скорее часть / ), но /srv как собственный раздел, занимая пространство, занимаемое /home . Так что после этого df -h должно выглядеть так ( /home заменяется /srv ):

Что нужно сделать, чтобы сюда попасть?

Поскольку у вас много места в /home , переместите все из /srv в /home , затем (необязательно) переместите то, что было в /home в корневой раздел.

Самое простое решение, если вы не против нескольких минут простоя, — переместить /srv в больший раздел и создайте символическую ссылку:

Если ты действительно хочешь переехать /home в корневой раздел, затем потребуется несколько переименований. Я предполагаю, что нет каталога с именем /home/srv или же /srv/srv .

Наконец (если вы не используете метод символической ссылки) отредактируйте /etc/fstab чтобы изменить точку монтирования: в строке, начинающейся с /dev/sda9 /home заменить /home по /srv .

  • Спасибо — звучит для меня как лучшее решение, так как мне не нужно возиться с созданием / изменением разделов. Простои — не проблема, так как эта машина еще не подключена к сети.

Прежде чем что-либо делать, вам нужно придумать место для хранения 180 мегабайт данных, которые / home в настоящее время принимает. Я бы рекомендовал переразбить текущий / dev / sda9, скажем, на два гига для /home и 42 для /srv .

Далее вам придется немного повозиться. Все это лучше всего выполняется в однопользовательском режиме, так что в систему входит только root, и у вас не возникает проблем с кем-то, пытающимся получить доступ /home пока вы его перемещаете.

У вас достаточно места в / var, поэтому мы будем использовать его как временное место для хранения: mkdir /var/tmp/oldhome

`tar -cvf — ./ | (cd / var / tmp / oldhome && tar -xvf -)

Теперь у нас есть /home сохранено куда-то, пока мы переделываем /dev/sda9 на 2 гига для /dev/sda9 и 42 гига для /dev/sda10

После того, как вы закончите перераспределение и создание новых файловых систем (я предполагаю, что вы знаете, как это сделать), вам нужно будет отредактировать /etc/fstab .

Где-то там вы увидите строку, говорящую что-то вроде

/dev/sda9 /home ext3 defaults 0 2

Предполагая, что вы сделали /dev/sda9 меньший из двух разделов, вы можете оставить эту строку без изменений; вам просто нужно добавить

/dev/sda10 /srv ext3 defaults 0 2

После добавления этих строк просто введите

mount /home ; mount /srv

и проверьте с df -h чтобы убедиться, что смонтированы оба раздела.

Затем замените данные из / home:

tar -cvf — ./ | ( cd /home && tar -xvf — )

Перезагрузите вашу систему в многопользовательском режиме, и все должно работать.

  • Спасибо за подробный ответ. Скажи, что у меня достаточно места на / за /home я могу просто переключить точку монтирования с /dev/sda9 /home ext3 defaults 0 2 к /dev/sda9 /srv ext3 defaults 0 2 без создания новых разделов и перемещения вещей? Еще странная вещь: /home имеет только одну пустую корневую папку. Я не знаю, почему он использует 181M, как видно на выходе.
  • С выходов, / полностью заполнен, несмотря на несоответствие между общим и используемым пространством — и я вижу аналогичное несоответствие в /home . Я бы рекомендовал вам очень // внимательно посмотреть, что /home на самом деле содержит ( find /home/ -ls было бы хорошим началом. )
  • Насколько я понял /home содержит /srv (который я мог бы перенести в другое место и снова переместить в /srv когда у него есть собственный раздел). И /home действительно содержит только пустой каталог root и пустой каталог lost+found . Так не мог я просто изменить /home к /srv в fstab (после освобождения места в / )?
  • Это сложно и неэффективно! Зачем перемещать данные несколько раз? Зачем возиться с tar ( cp -a действительно ли лучше сохраняет метаданные и копирует «странные» файлы)?
  • Я полагаю, вы могли бы просто хранить его в архиве, а не каждый раз распаковывать, но вы находятся придется переместить его в безопасное место, прежде чем переразбивать раздел, в котором он сейчас находится.
Читайте также:  Windows 10 где управление обновлениями

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

Прочитать о —bind в man mount . Это сводится к чему-то вроде mount —bind /some/spare/dir /busy/dir/mountpoint . Работает на любом современном Linux.

Предположим, что у вас есть /srv/some/stuff .

  • mkdir /home/offload/some/stuff — это на разделе свободного места 44G
  • mv /srv/some/stuff /srv/some/previous-stuff — временно освободить имя
  • mount —bind /home/offload/some/stuff /srv/some/stuff — теперь some / stuff находится в другом разделе!
  • mv /srv/some/previous-stuff/* /srv/some/stuff — вернуть вещи под исходное имя, освободить место на / srv.

Источник

Linux для начинающих. Часть 4. Перенос каталога /home на отдельный раздел диска

Здравствуйте уважаемые читатели блога www.ithabits.ru. В предыдущей публикации темы “Linux для начинающих” мы выяснили какие преимущества дает размещение каталога /home на выделенном дисковом разделе.

В этой же статье мы рассмотрели алгоритм установки операционной системы Linux с гарантированным выделением отдельного тома для монтирования каталога домашних папок пользователей.

В алгоритмах установки некоторых популярных дистрибутивов уже присутствует в явном виде возможность создания и монтирования дополнительных дисковых разделов. К сожалению, в самом популярном на сегодняшний день дистрибутиве Linux Mint такой возможности пока нет.

Интересно отметить, что среди читателей блога, принявших участие в выборе наиболее популярного Linux-дистрибутива, почти половина из них (43%) также отдали свое предпочтение этому дистрибутиву.

Однако как быть тем, кто уже установил операционную систему Linux на свой компьютер с использованием дефолтных установок, при которых каталог /home оказался в общей компании с остальными системными папками?

Нужно ли переустанавливать в этом случае операционную систему “с нуля”? Конечно нет.

Сегодня мы разберемся с тем, как просто и безопасно перенести пользовательский каталог /home на отдельный раздел диска в уже установленной системе на примере популярного Linux Mint.

Процедуру переноса мы осуществим в среде данной ОС, загруженной с LiveCD (CD или USB-Flash). Это проще, безопаснее, а главное, понятнее, что немаловажно, особенно для начинающих пользователей.

Подготовка к переносу каталога /home на отдельный дисковый раздел

Для успешного выполнения операции переноса нам потребуются:

1. Загрузочный USB Flash Drive (флешка) с дистрибутивом Linux Mint;

Это устройство является обязательным.

Напомню, что для создания загрузочного USB-носителя в среде Windows можно воспользоваться замечательной утилитой Universal USB Installer.

В Linux Mint специально для этой цели предназначено приложение из категории “Стандартные”, которое так и называется “Создание загрузочного USB-носителя”.

2. Внешнее устройство хранения, например USB HDD или другой компьютер с подключением к локальной сети;

3. Загрузочный USB Flash Drive (флешка) с системой для создания дисковых образов, например с Clonezilla Live.

Атрибуты перечисленные во втором и третьем пунктах не являются обязательными, но крайне желательны.

Как мы увидим дальше, внешний накопитель может понадобиться для временного сохранения содержимого каталога /home.

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

Если внешний накопитель отсутствует, то другим вариантом решения этой задачи может быть многократная последовательная переразметка дисковых разделов. Главное, чтобы в первый момент на диске все же было незанятое пространство объемом равным объему пользовательских данных.

Читайте также:  Безопасная загрузка windows какая кнопка

Очень желательно, а на мой взгляд просто необходимо, до начала любых манипуляций с системой сделать ее резервную копию. Для этой цели идеально подходит программа Clonezilla Live, описанию возможностей которой ранее было уделено достаточно пристальное внимание.

Записать загрузочную флешку с Clonezilla Live можно с помощью тех же упомянутых в первом пункте инструментов.

После того, как сделана резервная копия жесткого диска и на диске высвобождено достаточное количество свободного пространства, можно приступать к переносу каталога /home.

Алгоритм переноса каталога /home

1. Создаем на диске новый раздел для каталога /home

Для этого загружаем компьютер с USB-носителя с дистрибутивом Linux Mint и запускаем утилиту GParted.

GParted представляет собой очень мощную программу для работы с дисковыми разделами в среде Linux. Она имеет локализованный графический интерфейс, что делает ее использование достаточно легким даже для неподготовленного пользователя.

Мы уже неоднократно использовали GParted ранее, например в контексте переноса системы на SSD.

Правда, при работе с LiveCD придется довольствоваться англоязычным интерфейсом, но это совершенно не проблема.

Если для дефолтной установки Linux Mint был предоставлен целый диск, то скорее всего он был размечен примерно таким образом:

Очевидно, что все папки Linux расположены на первом разделе диска /dev/sda1 и смонтированы в корневой каталог “/”.

  • Уменьшаем размер основного раздела /dev/sda1 до нужного значения

Без пользовательских данных для нужд операционной системы Linux в большинстве случаев будет достаточно 10…15 Гб.

Как мы уже отметили выше, если /home занимает большой объем, то сразу уменьшить размер раздела до желаемого значения может не получиться. В этом случае нужно будет или все же постараться и временно разгрузить пользовательские папки, или изменять размеры разделов за два приема.

Выделяем первый раздел и выбираем в меню Partition –> Resize/Move.

Задать новый размер дискового раздела можно непосредственно в соответствующем окне или перемещая боковые границы верхнего прямоугольника.

Обратите внимание, что программа GParted сразу вычислила объем имеющихся данных и, соответственно, минимально возможный размер раздела.

После того, как вы нажмете «Resize/Move», ничего не произойдет – задание будет лишь добавлено в очередь.

В таблице разделов появилась (запланировано появление) незанятая область между sda1 и расширенным разделом sda2.

  • Увеличиваем размер sda2 на величину незанятого пространства

Для этого сдвигаем начало sda2 в сторону sda1.

Если утилита GParted не позволяет это сделать, проверьте в ней же не произошло ли автомонтирование разделов. Например, мог подключиться linux-swap. В этом случае нужно выбрать “Swapoff”.

После этой операции появится незанятое пространство (unallocated) внутри расширенного раздела (контейнера) sda2.

  • Передвигаем sda5 (linux-swap) в началоsda2

Делать это не обязательно. Причем GParted предупредит о том, что перемещение раздела подкачки может привести к проблемам при запуске системы.

Теоретически считается, что раздел подкачки лучше размещать ближе к началу жесткого диска HDD для ускорения операций чтения/записи. К SSD это, естественно, не относится. На практике почувствовать это ускорение вряд ли получится.

  • Создаем на диске новый раздел для /home

Выделяем область unallocated и нажимаем “New”.

Если под домашний каталог планируется отдать все высвобожденное место, то менять ничего не придется.

При желании можно создать два новых раздела: один для /home, еще один, например, для больших или временных файлов. Такую конфигурацию файловой системы мы рассматривали в прошлый раз, когда разбирали “правильную” установку операционной системы Linux на компьютер.

Проверяем или задаем желаемый тип файловой системы — File system. По умолчанию будет выбрана ext4. В подавляющем большинстве случаев имеет смысл оставить этот дефолтный тип файловой системы.

Еще раз напоминаю, что пока никаких реальных изменений на диске не произошло. До тех пор, пока не запущен процесс выполнения заданий, их можно менять, удалять, добавлять новые и т.д.

  • Принимаем новую разметку разделов

Нажимаем “Apply All Operations” и ждем завершения операций. Их продолжительность будет определятся объемом перемещаемых данных и скоростью дисковой подсистемы компьютера.

Читайте также:  Вай фай адаптер для кали линукс

В конечном итоге должно получиться примерно так:

Для того, чтобы убедиться, что манипуляции с разделами прошли успешно, выходим из GParted и перезапускаем компьютер в обычном режиме (не с LiveCD).

2. Перенос пользовательских данных в новый раздел

Если компьютер запустился нормально, выключаем его и вновь стартуем с загрузочной флешки.

Теперь нам нужно перенести все содержимое /home на только что созданный новый раздел.

  • Создаем в каталоге /media Live-системы две временные папки

Назовем их, например, fs_old и home_new. Создать их можно в терминале (Terminal) с помощью команд:

sudo mkdir /media/fs_old
sudo mkdir /media/home_new

Или непосредственно в файловом менеджере. Для Linux Mint 17, в котором выполнены примеры для статьи, это “Nemo”. Однако запустить его нужно с повышенными привилегиями:

  • Для доступа к данным смонтируем нужные разделы в созданные папки

Название (номер) ранее созданного раздела можно посмотреть в GParted или с помощью команды blkid.

sudo mount /dev/sda1 /media/fs_old
sudo mount /dev/sda6 /media/home_new

  • Копируем все содержимое /home в новый раздел:

sudo cp -a /media/fs_old/home/* /media/home_new

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

  • Удаляем пользовательские данные из их предыдущего расположения (с раздела sda1):

sudo rm -rf /media/fs_old/home/*

3. Монтируем новый раздел в каталог /home при загрузке системы

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

fstab (file systems table) – один из основных конфигурационных файлов системы Linux, в котором прописаны точки и опции монтирования разделов жесткого диска и других носителей в процессе загрузки операционной системы. Этот файл находится в папке /etc.

sudo gedit /media/fs_old/etc/fstab

Параллельно запускаем GParted и из окна свойств раздела sda6 копируем его UUID.

Далее в открытом окне текстового редактора добавляем в конец fstab такую строку с только что найденным UUID:

UUID=1734e4c4-9755-41ff-9e75-739966cdf365 /home ext4 defaults 0 2

Альтернативным вариантом узнать UUID раздела является команда blkid.

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

Наслаждаемся полученным результатом. Как видите, все очень просто и быстро.

4. Оптимизация размеров дисковых томов

Данный пункт актуален только в том случае, если из-за большого объема пользовательских данных на первом шаге не получилось уменьшить размер системного раздела Linux до желаемого значения.

Вновь загружаем компьютер с флешки с Live-дистрибутивом Linux и запускаем GParted. Далее выполняем необходимые операции Partition –> Resize/Move.

Что делать если после внесенных изменений система не запускается

Если все было сделано аккуратно, то в подавляющем большинстве случаев никаких проблем с загрузкой не возникнет.

Точнее сказать, никаких проблем с загрузкой системы, как таковой, возникнуть и не может. Но если допустить ошибку при редактировании fstab, то могут возникнуть неприятности со входом в пользовательский сеанс.

Если во время старта системы на экране появилось приглашение: “keys:Нажмите “S”, чтобы пропустить подключение или “M” для…” и загрузка остановилась, то, вероятнее всего, что-то не так в добавленной строке в файле fstab.

Это совершенно не причина для паники – ничего страшного не произошло и в любом случае легко поправимо.

Вводим root пароль и вручную монтируем раздел sda6 (в нашем случае) в домашний каталог /home:

mount /dev/sda6/ /home

Нажимаем “Control-D”, после чего система возобновит загрузку и благополучно запустится в пользовательском сеансе.

Теперь вновь открываем файл fstab на редактирование:

sudo gedit /etc/fstab

и спокойно ищем ошибку.

Интересно, что явной ошибки может и не быть. Так, получив однажды такой “сюрприз” при первом после переноса пользовательских папок на отдельный раздел старте компьютера, я долго глядел на содержимое конфигурационного файла и не мог понять, что в нем не так.

Оказалось, что Linux Mint требует обязательного указания атрибута “defaults” и без него директиву монтирования тома не выполняет.

Если есть проблемы с описанным вариантом старта системы, то всегда можно загрузиться с имеющейся загрузочной флешки и поправить файл fstab в Live сеансе.

Источник

Оцените статью