3

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

Проблема, которую я обнаружил, состоит в том, что Ubuntu не создал каталог /home внутри самого раздела. Он просто помещает каталоги учетных записей в раздел и монтирует его в /home. Поэтому я не могу просто переместить папку /srv в раздел.

Как я могу:

  1. Переместите эти каталоги учетных записей в домашнюю папку внутри раздела
  2. Сделайте эту новую домашнюю папку папкой по умолчанию /home .
  3. То же самое с папкой /srv или любым другим , который я выберу в будущем.

3 ответа3

3

После того, как /home был смонтирован, вы можете сделать bind mount для монтирования, например, /home/srv on /srv .

mount --bind /home/srv /srv

В этом случае те же файлы будут отображаться в /home/srv и /srv .

Или вы можете сделать mount для перемещения /home/srv в /srv .

mount --move /home/srv /srv

В этом случае /home/srv больше не будет существовать после монтирования. Размонтирование /srv заставит /home/srv появиться снова.

2

Если я правильно понимаю, что вы пытаетесь сделать, это не совсем возможно - монтаж не работает таким образом. (Хотя вы можете подделать это, как объяснено, например, в ответе Игнасио)

Вы можете думать о каждом разделе как о своей файловой системе. Например, предположим, у вас есть раздел sda1 который вы собираетесь использовать для корня всей файловой системы, и sda2 который вы собираетесь использовать для хранения домашних каталогов. Как вы теперь знаете, файловая система на sda1 содержит каталоги верхнего уровня bin , lib , usr , home и т.д., А файловая система на sda2 содержит каталоги верхнего уровня user1 , user2 и т.д. (Или какими-либо домашними каталогами ваших пользователей. называется). Иерархия может выглядеть так:

sda1
|-bin
| |- (programs)
|-home
|-lib
| |- (libraries)
|-usr
| |-bin
| |-lib
| |-share

sda2
|-user1
| |-Documents
|-user2
| |-Documents

А также, как вы знаете, чтобы смонтировать файловую систему, вы должны указать файловую систему (конечно) и каталог, точку монтирования. Когда вы это сделаете, указанная вами директория станет именем корня файловой системы раздела. Например, одна из первых вещей, которую ОС делает при запуске, - это монтирование sda1 (в этом примере) в каталог / . Это делает / имя для корня файловой системы на sda1 . Теперь вы можете ссылаться на каталог bin в sda1 как /bin , например. Позже в процессе загрузки ОС монтирует sda2 в /home/ , что означает, что /home/ - это имя корня файловой системы sda2 . Чтобы обратиться к каталогу user1 на sda2 , вы можете написать /home/user1 . И так далее.

Теперь кажется, что вы имели в виду назначение имени (например, /srv/) некоторому подкаталогу в файловой системе раздела, а не корню этой файловой системы. Но mount не работает таким образом. Я не уверен, есть ли техническая причина для этого, или это было просто дизайнерское решение разработчиков ядра Linux. Суть в том, что для того, чтобы что-то в разделе было доступно, вы должны присвоить имя корню файловой системы. Но как только вы это сделаете, вы можете сделать подкаталоги в файловой системе раздела доступными под другими именами, используя параметр --bind для mount , и это, вероятно, ваш лучший вариант.

1

в вашем случае /home считается "точкой монтирования", имя точки монтирования можно изменить, отредактировав /etc /fstab

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