LinuxForum.Fans
Тема

Как переместить Домашнюю папку

Автор: Svitoslav 63 сообщений 15960 просмотров
#208457

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

#208459

Для начала перенести а потом править

#208461

Svitoslav, совершенно верно. Необходимо будет размонтировать старого хомяка и вместо него производить монтирование нового
с теми же параметрами. Всё делается от имени root.

#208468

durc, нерабочий сервер? smile

#208471
Kettler написал:
Для начала перенести а потом править
Wolfenberg написал:
совершенно верно. Необходимо будет размонтировать старого хомяка и вместо него производить монтирование нового
с теми же параметрами. Всё делается от имени root.

Я саму папку переместил, можно поконкретнее что конкретно там править.

#208472

Перенёс с сохранением прав?

#208475
Kettler написал:
Перенёс с сохранением прав?

Нет но до системных папок я ещё не дотрагивался

#208551

не совсем понятно что хотите...
Вы хотите перенести раздел с домашними папками /home на другой носитель? это можно но пути к домашним папкам все равно останутся типа /home/user
если вы хотите пути к дом.папке пользователя перенести в другое место, типа /usr/home/user то вам надо менять путь к домашней папке пользователя (man usermod), предварительно перенеся все папки туда.
Можно совместить первый и последний вариант и перенести на дургой раздел и примонтировать его в папку /usr/home и поменять пути к дом.папкам пользолвателей...

#208568
Харитон написал:

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

Вот это мне и как раз надо, можно пожалуйста рассказать поподробнее как это сделать.

#208578
Wolfenberg написал:
durc, нерабочий сервер? smile

Сорри недоступен и правда был.
http://zenon.sytes.net/otdelyaem-home/
Отделяем /home от корня без перезагрузки.
Допустим при установке мы не особо уделили внимание к разметке диска, и установили Linux в один раздел, но место начало заканчиваться, либо просто хотим более правильно разметить диск.
Первое что необходимо сделать это конечно же отделить домашний каталог – /home, рассмотрим как это сделать:
Смотрим /etc/fstab нас интересует куда смонтирован корень системы (/) – пусть будет /dev/sda1.
Далее нам необходимо подготовить раздел для будущего домашнего каталог (/home), как это сделать заострять внимание не буду – пользуйтесь fdisk, cfdisk, gparted.
Подготовили пусть это будет – /dev/sda2 – на самом деле если в системе два жестких диска лучше /home разместить на другом, общая отзывчивость системы будет лучше.
Но остановимся на том что есть.

Итак: / = /dev/sad1 задача отделить /home не прибегая к live дистрибутивам.
Создадим временную точку монтирования для переноса текущего содержимого /home:

text
$ mkdir /mnt/tmp

Монтируем будущий /home:

text
$ mount /dev/sda2 /mnt/tmp

Теперь надо скопировать наш текущий каталог /home в подготовленный раздел, сделать это лучше всего при помощи rsync (если не стоит – aptitude install rsync)
Синхронизируем:

text
$ cd /home
$ rsync -pavv --delete --progress ./ /mnt/tmp

Обращаю внимание – cd /home – переместится в каталог обязательно надо иначе не правильно отработает rsync.
Отмонтируем /mnt/tmp и подменяем наш каталог /home новым разделом:

text
$ umount /mnt/tmp
$ mount /dev/sda2 /home

И тут у нас один нюанс, – каталог то мы подменили разделом, но старые данные в подмененном каталоге остались, и нам необходимо их удалить, иначе зачем все затевалось – неправда ли?
Итак монтируем наш корень в /mnt/tmp с опцией bind:

text
$ mount --bind /dev/sda1 /mnt/tmp

Теперь можем увидеть наш старый /home в каталоге /mnt/tmp/home, его то нам и надо теперь очистить, после чего можно отмонтировать /mnt/tmp.
Вот и все.
Как бы ни так: про fstab забыли?
Редактируем его:

text
$ nano /etc/fstab

Примерно было так (привожу только интересующие нас строки):

text
...
/dev/sda1  /              ext4   defaults    0 1
...

Пропишем наш новый /home:

text
...
/dev/sda1  /              ext4   defaults    0 1
/dev/sda2  /home          ext4   defaults    0 1
...

Вот теперь можно смело перезагружаться.
Подобным способом можно отделить /usr, /var и т.д.

#209003

А что если перемещать на раздел с NTFS? Что тогда писать в fstab после выполнения этих команд?

#209053

Svitoslav, не надо использовать разделы с ntfs для linux каталогов!!! :[ :[ :[

#209059
newzenon написал:
не надо использовать разделы с ntfs для linux каталогов!!! Оно не понимает права на файлы/каталоги

Спасибо что вовремя сообщили а то я сейчас переместил бы.....

#209821

Svitoslav,
пользуйте ext3 или 4.

#210466
newzenon написал:
Теперь надо скопировать наш текущий каталог /home в подготовленный раздел, сделать это лучше всего при помощи rsync (если не стоит – aptitude install rsync)

простите, а просто cp или tar не пойдёт?

Svitoslav написал:
А что если перемещать на раздел с NTFS?

а если сделать вдоль?

Показать
Remember, it’s down the road, not across the street
#210470
drBatty написал:
[quote=newzenon]Теперь надо скопировать наш текущий каталог /home в подготовленный раздел, сделать это лучше всего при помощи rsync (если не стоит – aptitude install rsync)

простите, а просто cp или tar не пойдёт?[/quote]


Уговорил, покормлю.
: Где я сказал что нельзя? Я сказал _лучше_. И да много чего подойдет, _мне_ лучше rsync.

#210479
newzenon написал:
Я сказал _лучше_.
newzenon написал:
_мне_ лучше rsync.

чем лучше-то?

#210499
drBatty написал:
чем лучше-то?

чем cp - очевидно, сохранит права
чем tar через трубу - думал, что будет помедленнее, однако нет(копировалось на tmpfs практически без посторонней дисковой нагрузки):

Показать
[console]
alexander@goblin /tmp $ rm -rf portage
alexander@goblin /tmp $ mkdir portage
alexander@goblin /tmp $ time (cd /var/portage/ ; tar -c . | tar -x -C /tmp/portage/ )

real 0m14.756s
user 0m1.054s
sys 0m5.180s
alexander@goblin /tmp $ rm -rf portage
alexander@goblin /tmp $ mkdir portage
alexander@goblin /tmp $ time (cd /var/portage/ ; rsync -paq ./ /tmp/portage/)

real 0m23.408s
user 0m7.041s
sys 0m11.052s
alexander@goblin /tmp $ rm -rf portage
alexander@goblin /tmp $ mkdir portage
alexander@goblin /tmp $ time (cd /var/portage/ ; tar -cp . | tar -xp -C /tmp/portage/ )

real 0m7.497s
user 0m1.029s
sys 0m5.022s
alexander@goblin /tmp $ rm -rf portage
alexander@goblin /tmp $ mkdir portage
alexander@goblin /tmp $ time (cd /var/portage/ ; tar -cp . | tar -xp -C /tmp/portage/ )

real 0m5.184s
user 0m1.055s
sys 0m4.925s
alexander@goblin /tmp $ rm -rf portage
alexander@goblin /tmp $ mkdir portage
alexander@goblin /tmp $ time (cd /var/portage/ ; rsync -paq ./ /tmp/portage/)

real 0m14.151s
user 0m7.017s
sys 0m10.607s
alexander@goblin /tmp $ rm -rf portage
alexander@goblin /tmp $ mkdir portage
alexander@goblin /tmp $ time (cd /var/portage/ ; tar -cp . | tar -xp -C /tmp/portage/ )

real 0m4.365s
user 0m0.981s
sys 0m4.840s
alexander@goblin /tmp $ mkdir portage
mkdir: невозможно создать каталог «portage»: Файл существует
alexander@goblin /tmp $ rm -rf portage
alexander@goblin /tmp $ mkdir portage
alexander@goblin /tmp $ time (cd /var/portage/ ; rsync -paq ./ /tmp/portage/)

real 0m15.774s
user 0m6.954s
sys 0m10.888s
alexander@goblin /tmp $ rm -rf portage
alexander@goblin /tmp $ mkdir portage
alexander@goblin /tmp $ time (cd /var/portage/ ; tar -cp . | tar -xp -C /tmp/portage/ )

real 0m4.360s
user 0m0.988s
sys 0m4.826s
[/console]
#210501
Fat-Zer написал:
чем cp - очевидно, сохранит права

cp -a от рута тоже сохраняет все права.

Fat-Zer написал:
чем tar через трубу - думал, что будет помедленнее, однако нет(копировалось на tmpfs практически без посторонней дисковой нагрузки):

правильно. tar работает быстрее rsync. Это очевидно - ибо tar намного проще. Конечно rsync умеет восстанавливать файлы, и скачивать их только частично, но в данном случае это не нужно. Вот я и удивляюсь...

Войдите или зарегистрируйтесь, чтобы ответить.