Куда прицепить второй винт

Аватар пользователя ZaySan

Вопрос такой: нынешний винт маловат (осталось ~60м), да и переразбивать его неохота. Если преобрету второй винт, как его правильно прописать, чтобы можно было устанавливать программы поумолчанию (типа- /usr/share/..) без нарушений нынешней структуры диска? Или когда инфы больше станет придётся - сохраниться-надставить_винт-отформатировать_всё-установить_ОС-скинуть_инфу_на_комп, или весь комп выкинуть? :pardon:

Аватар пользователя sergeil

Re: Куда прицепить второй винт

Цитата:
ZaySan пишет:
Вопрос такой: нынешний винт маловат (осталось ~60м),

Ну, это естественный процесс. У всех когда-нибуть остается только 60м
Улыбка

Цитата:
да и переразбивать его неохота.

А как диск разбит?

Цитата:
Если преобрету второй винт, как его правильно прописать,

Более правильным вопросом будет "как его правильно подключить физически"
Какие еще есть дисковые устройства и какие? Какие еще есть контроллеры и какие.
У меня, например, обычный интеловский контроллер, тот что в материнке
00:1f.1 IDE interface: Intel Corporation 82801DB (ICH4) IDE Controller (rev 02)

Дисковый устройства:
/dev/hda (Primary/Master): Model=WDC WD800JB-00ETA0
/dev/hdb (Primary/Slave): Model=IC35L040AVER07-0
/dev/hdc (Secondary/Master): Model=SONY CD-RW CRX320E
/dev/hdd (Secondary/Slave): Model=_NEC DVD_RW ND-4550A

Цитата:
чтобы можно было устанавливать программы поумолчанию (типа- /usr/share/..) без нарушений нынешней структуры диска?

Под Linux это делается легко.

Цитата:
Или когда инфы больше станет придётся - сохраниться - надставить_винт - отформатировать_всё - установить_ОС - скинуть_инфу_на_комп, или весь комп выкинуть? :pardon:

Выбросить комп? Это крайность...
Больше ничего из последнего абзаца не понял.

Аватар пользователя ZaySan

Re: Куда прицепить второй винт

При установки пакетов *.rpm (непример игры) путь поумолчанию будет /usr/share/.. или /usr/local/.. т.е. эти папки уже имеются. При монтировании второго физического диска проблем с /dev/hda* у меня недолжно возникнуть. Mount .. /usr непрокатит. Если только создавать для каждой игры раздел и монтировать по нужному пути, а это сильно смахивает на геморой. :-?

Аватар пользователя sergeil

Re: Куда прицепить второй винт

ZaySan

Цитата:
При установки пакетов *.rpm (непример игры) путь поумолчанию будет /usr/share/.. или /usr/local/.. т.е. эти папки уже имеются. При монтировании второго физического диска проблем с /dev/hda* у меня недолжно возникнуть. Mount .. /usr непрокатит. Если только создавать для каждой игры раздел и монтировать по нужному пути, а это сильно смахивает на геморой. :-?

Сначала подключите железо
потом создайте разделы нужного типа fs и размера
потом отформатируйте в выбранную fs

потом создайте в /mnt точку монтирования, смонтируйте новый диск и потом скопируйте выбранную директорию на новый диск. Добавте запись в /etc/fstab, переименуйте скопированную директорию, создайте вместо нее пустую и смонтируйте раздел.

Например, у нас новый диск на /dev/hdc (Secondry/Master)
Создаем разделы : cfdisk /dev/hdc
Пусть это будут /dev/hdc1 (для swap), /dev/hdc5 ( ext3 для /usr), /dev/hdc6(ext3 для /home), /dev/hdc7(ext3 для /tmp)

! Возможно, после завершения потребуется перезагрузка.

Форматируем созданные тома.
root# mkswap /dev/hdc1
root# mkfs -t ext3 -L usr /dev/hdc5
root# mkfs -t ext3 -L home /dev/hdc6
root# mkfs -t ext3 -L tmp /dev/hdc7

# Теперь монтируем
mkdir /mnt/usr
mount /dev/hdc5 /mnt/usr

# Переходим туда, что собираемся копировать. В нашем случае /usr
cd /usr

# и копируем (можна серез tar или MC. Ни в коем случае не cp).
# Копируем на новый раздел /mnt/usr/
tar cf /mnt/usr/usr.tar &nbsp&nbsp.
# Внимание, в конце точка, синоним текущей директории.
cd /mnt/usr
tar xf usr.tar
rm usr.tar
===
#Добавляем авто-монтирование
echo "/dev/hdc5 /usr ext3 defaults,noatime 0 1" >> etc/fstab
можна просто отредактировать /etc/fstab

# переименовываем старый /usr
mv /usr /usr.old

# создаем точку монтирования для нового /usr
mkdir /usr

# отмонтируем вспомогательную точку
umount /mnt/usr

#монтируем в нужное место.
mount /usr

Все, теперь /usr у нас на втором диске...
FYI: Есть особенности в копировании /tmp, связанные с правами.

Аватар пользователя ZaySan

Re: Куда прицепить второй винт

sergeil, Спасибо за инструкцию, смысл понял. :thanks: Выдуз таких штук бы зделать не дала. Пойду пробовать. И Всё делать наверное надо без иксов?

Аватар пользователя sergeil

Re: Куда прицепить второй винт

ZaySan

Цитата:
sergeil, Спасибо за инструкцию, смысл понял. :thanks:

Ну, я так уже много раз разносил директории по разделам. Проверенно, работает.
Но! Я не несу никакой отвественности за любой ущерб... (стандартный отказ от гарантий)
Улыбка

Цитата:
Выдуз таких штук бы зделать не дала.

Насколько я знаю, тоже можна, но не все...
Например, "Documents and Settings" я наблюдал в Windows-2000 на отдельном разделе, который был подмонтрован в нужное место. Так что, без фанатизма...
Улыбка

Цитата:
Пойду пробовать. И Всё делать наверное надо без иксов?

А еще лучше в single mode (runlevel 1)

Аватар пользователя lkanter

Re: Куда прицепить второй винт

sergeil

Цитата:
# и копируем (можна серез tar или MC. Ни в коем случае не cp).

Это еще почему???

Аватар пользователя sergeil

Re: Куда прицепить второй винт

lkanter

Цитата:
sergeil
Цитата:

# и копируем (можна серез tar или MC. Ни в коем случае не cp).

Это еще почему???

Потому что нам необходимо сохранить абсолютно все атрибуты файлов.
То есть, владельца, права достуупа, мягкие линки, ..., иногда нужно копировать файлы устройств. Сандартный 'cp' этого не позволяет. Можна, конечно, попытатьзя поискать какой-то расширенный синтаксис для 'cp', но у меня нет уверенности, что это что-то даст. Так что, не стоит рисковать.

Аватар пользователя Archont

Re: Куда прицепить второй винт

Цитата:
sergeil пишет:
lkanter

Это еще почему???

Цитата:
Потому что нам необходимо сохранить абсолютно все атрибуты файлов.
То есть, владельца, права достуупа, мягкие линки, ..., иногда нужно копировать файлы устройств. Сандартный 'cp' этого не позволяет. Можна, конечно, попытатьзя поискать какой-то расширенный синтаксис для 'cp', но у меня нет уверенности, что это что-то даст. Так что, не стоит рисковать.

cp -ax или, что то же самое, cp -dpRx
Это и есть искомый синтаксис, копирует всё абсолютно правильно безо всякого риска.
Да и single mode излишнее требование. Достаточно просто оставить минимум сервисов и не запускать никаких программ, кроме самого копирования. Тогда максимум, что вы можете потерять, это логфайлы за несколько минут. Невелика потеря, учитывая, что логировать практически нечего.

Аватар пользователя lystor

Re: Куда прицепить второй винт

Archont

Цитата:
Это и есть искомый синтаксис, копирует всё абсолютно правильно безо всякого риска.

А про файлы, начинающиеся с точки, вы забыли?

Аватар пользователя sergeil

Re: Куда прицепить второй винт

Archont

Цитата:
cp -ax или, что то же самое, cp -dpRx
Это и есть искомый синтаксис, копирует всё абсолютно правильно безо всякого риска.
Да и single mode излишнее требование. Достаточно просто оставить минимум сервисов и не запускать никаких программ, кроме самого копирования. Тогда максимум, что вы можете потерять, это логфайлы за несколько минут. Невелика потеря, учитывая, что логировать практически нечего.

Ну что-же. Если Вы абсолютно уверены в надежности предложенного Вами решения, то можете попробовать копировать свою систему через 'cp'. Потом поделитесь впечатлениями. Копирование через MC или tar, может быть, не так изящно, зато неоднократно проверено практикой. И каждый раз с положительным результатом. Я так уже не одну систему с раздела на раздел перенес.

Аватар пользователя lystor

Re: Куда прицепить второй винт

sergeil

Цитата:
Если Вы абсолютно уверены в надежности предложенного Вами решения, то можете попробовать копировать свою систему через 'cp'.

Не раз переносил систему при помощи cp на другой винт - никаких проблем не встречал . :-?

Аватар пользователя ZaySan

Re: Куда прицепить второй винт

Всем большое Спасибо! Меня не было три дня, а тут гости пишли Катается от смеха .
Предлогаю написать Хаутушку по этому вопросу. Я не первый и ,видимо, не последний, кто с этими граблями. После распечатки инструкции от дорогого друга sergeil'а я приступил к действию и почти сразу допустил Ошибку: вместо копирования через МС я приступил к переносу папок, т.е. загрузился под синглом (и без иксов) через МС в папке /usr нажал F6 вместо F5 :mda: , лопухнулся, а хотел чтобы всё быстрее было Катается от смеха . Редактировать fstab пришлось через VI, вспоминал как с ним работать не долго, без старых записей необошлось. Но теперь всё работает, и места значительно прибавилось. Для мигранта из Выньдовс данная процедура для понимания даётся не легко. А первая причина Моих мучений была в том, что разбивку винта я делал по минимальным требованиям рекомендованным в разной там литературе. А когда сообразил, что место выделил моловато, нужно было чтото делать :pardon: ... Один мой знакомый при малейших изменениях в структуре диска делал переустановку системы Win* (на всякий случай), а я так не хочу.
ВСЕМ БАЛЬШОЕ СПАСИБО.

Аватар пользователя Archont

Re: Куда прицепить второй винт

sergeil

Цитата:
cp -ax или, что то же самое, cp -dpRx

Ну что-же. Если Вы абсолютно уверены в надежности предложенного Вами решения, то можете попробовать копировать свою систему через 'cp'. Потом поделитесь впечатлениями. Копирование через MC или tar, может быть, не так изящно, зато неоднократно проверено практикой. И каждый раз с положительным результатом. Я так уже не одну систему с раздела на раздел перенес.

Аналогично.

Аватар пользователя Archont

Re: Куда прицепить второй винт

sergeil

Цитата:
# и копируем (можна серез tar или MC. Ни в коем случае не cp).
# Копируем на новый раздел /mnt/usr/
tar cf /mnt/usr/usr.tar .
# Внимание, в конце точка, синоним текущей директории.

Кстати, а что насчет того, чтобы не копировать другие файловые системы, смонтированные на каталоги копируемого раздела?
Нужна ли опция -l для tar?
И кто такой MC? Обычный midnight commander? Если да, то поделитесь хинтами, как можно с его помощью сделать всё корректно.

Аватар пользователя woodoo

Re: Куда прицепить второй винт

Archont

Цитата:
Кстати, а что насчет того, чтобы не копировать другие файловые системы, смонтированные на каталоги копируемого раздела?

Все-таки я настаиваю на способе "чистого копирования" разделов, загрузившись со сторонней ос (liveCD, например).

Цитата:
И кто такой MC? Обычный midnight commander? Если да, то поделитесь хинтами, как можно с его помощью сделать всё корректно.

Быть крайне внимательным. Четко представлять, что и куда нужно копировать. Hint: симлинки, смонтированные разделы.
При n-кратном вызове одной и той же функции копирования вероятность операторской ошибки резко возрастает. В этом плане консольные команды предпочтительнее.

Есть еще один немаловажный момент: хардлинки. При любом копировании на уровне приложения они будут интерпретированы как независимые файлы.
Мне кажется ("as for me") максимально корректный алгоритм копирования информации был бы следующий:
1. Загрузиться со "сторонней ос" - с подключенными "источником" и "получателем".
2. С помощью dd скопировать разделы.
3. При необходимости - изменить размеры разделов на "получателе" (parted, qtparted, acronis disk manager, etc).
4. Восстановить желаемую конечную аппаратную конфигурацию.
5. Восстановить загрузчик.

ps. Чтобы исключить лишние возражения. Предложенный алгоритм - как бы "идеальный". При решении практической задачи в зависимости от условий он зачастую будет избыточным. :hammer:

Аватар пользователя lystor

Re: Куда прицепить второй винт

woodoo

Цитата:
Есть еще один немаловажный момент: хардлинки. При любом копировании на уровне приложения они будут интерпретированы как независимые файлы.

$ cp -d ...
$ man cp
-d same as --no-dereference --preserve=link
--no-dereference never follow symbolic links
--preserve[=ATTR_LIST] preserve the specified attributes (default: mode,ownership,timestamps) and security contexts, if possible additional attributes: links, all

Аватар пользователя sergeil

Re: Куда прицепить второй винт

woodoo

Цитата:
Мне кажется ("as for me") максимально корректный алгоритм копирования информации был бы следующий:
1. Загрузиться со "сторонней ос" - с подключенными "источником" и "получателем".

Это хоть и избыточно, но вполне применимо...

Цитата:
2. С помощью dd скопировать разделы.

А вот этого делать не стоит. Такой метод хороше работает только если предполагается полное зеркало старого HDD. При этом марки и геометрия старого и нового HDD полностью совпадают. Тогда, если исходный диск подключен на /dev/hda, а диск назначения - на /dev/hdc, то `dd if=/dev/hda of=/dev/hdc` будет действительно наиболее эффективным решением. Я так даже диск на HP-UX копировал...

Цитата:
3. При необходимости - изменить размеры разделов на "получателе" (parted, qtparted, acronis disk manager, etc).

Зачем это делать, если желаемые разметы и тип файловой системы разделов можна задать изначально, до копирования, а потом осуществить пофайловое, а не посекторное копирование? Таким способом можна перейти, например, с ext3 на другую FS. Копируя посекторно, Вы, как правило, создаете файловую систему с неверными параметрами. То есть, делаем изначально плохо (создаем трудности), а потом доблесно все исправляем (боремся с этими трудностями). Не понимаю...

Цитата:
4. Восстановить желаемую конечную аппаратную конфигурацию.
5. Восстановить загрузчик.

4-й и 5-й пункт - ОК

Аватар пользователя woodoo

Re: Куда прицепить второй винт

lystor

Цитата:
$ cp -d ...
$ man cp
-d same as --no-dereference --preserve=link
--no-dereference never follow symbolic links

Да, проверил, согласен. Почему-то считал, что относится только к символическим ссылкам.

Аватар пользователя sergeil

Re: Куда прицепить второй винт

woodoo

Цитата:
Все-таки я настаиваю на способе "чистого копирования" разделов, загрузившись со сторонней ос (liveCD, например).

Я только что перенес систему на другие разделы. Встретил только одну трудность когда копировал /var.
Пришлось остановил все демоны и размонтировать
/proc on /var/named/chroot/proc type none (rw,bind)

А как Ваши успехи?

Аватар пользователя woodoo

Re: Куда прицепить второй винт

sergeil

Цитата:
Пришлось остановил все демоны и размонтировать

Теперь вопрос - человеку, мало знакомому с системой, может, все-таки проще загрузиться с liveCD (вариант: из консоли восстановления 1-го диска) и сделать то же самое к "комфортных" условиях?

Цитата:
А как Ваши успехи?

На протяжении нескольких лет /me это делаю без liveCD... Улыбка

Аватар пользователя sergeil

Re: Куда прицепить второй винт

woodoo

Цитата:
Теперь вопрос - человеку, мало знакомому с системой, может, все-таки проще загрузиться с liveCD (вариант: из консоли восстановления 1-го диска) и сделать то же самое к "комфортных" условиях?

Для этого нужно искать LiveCD, перегружать машину и менять порядок загрузки, потом монтировать исходные тома... Проще грузится в runlevel 3 (я не использую runlevel 5) и копировать. Что-бы не выгружать ничего, проще использовать интерактивную загрузку и пропустить загрузку демонов. Ну, и размонтироать лишнее. Быстрее и удобнее, чем с LiveCD
Улыбка

Аватар пользователя lystor

Re: Куда прицепить второй винт

sergeil

Цитата:
Проще грузится в runlevel 3 (я не использую runlevel 5) и копировать.

Я это всегда делаю в runlevel 1

Аватар пользователя sergeil

Re: Куда прицепить второй винт

lystor

Цитата:
sergeil
Цитата:
Проще грузится в runlevel 3 (я не использую runlevel 5) и копировать.

Я это всегда делаю в runlevel 1

И это правильно, но есть некоторые неудобства... Например, по умолчанию одна консоль, ... Нужно еще что-то запускать... По большему счету, runlevels отличаются только количеством и составом демонов, которые загружаются при старте...

Аватар пользователя ZaySan

Re: Куда прицепить второй винт

Выяснисась такой казус: после переноса /usr/.. перестал работать TV-FM тюнер. При перенасе один раз перегружался на runlevel 3.

Аватар пользователя Archont

Re: Куда прицепить второй винт

sergeil

Цитата:
Я только что перенес систему на другие разделы. Встретил только одну трудность когда копировал /var.
Пришлось остановил все демоны и размонтировать
/proc on /var/named/chroot/proc type none (rw,bind)

Вот именно об этом я и спрашивал: как вы выкручиваетесь, чтобы остаться в рамках одной файловой системы при копировании, и исключить копирование смонтированных на подкаталоги файловых систем?
tar -l вроде должна это делать, но я не пользуюсь tar при копировании, а вы -l не рекомендовали. Это осознанно, или вы об этом не задумывались?
cp -ax - копирует рекурсивно, не следует никаким ссылкам (т.е. ссылки копирует именно как ссылки), корректно работает с файлами всех типов (устройства, сокеты и т.п.), сохраняет все атрибуты файлов, остается в пределах заданной файловой системы.

Аватар пользователя sergeil

Re: Куда прицепить второй винт

Archont

Цитата:
Вот именно об этом я и спрашивал: как вы выкручиваетесь, чтобы остаться в рамках одной файловой системы при копировании, и исключить копирование смонтированных на подкаталоги файловых систем?

А копирую не все от корня, а только дерево, которое планирую перенести на другую файловую систему. Например /usr. Монтирую новый том на /mnt/usr, использую MC, что-бы скопировать /usr в /mnt/usr. Очень удобно. После того, как копирование завершено, я добавляю точку монтирования в /etc/fstab, переименовываю на ходу исходную директорию (все открытые файлы указывают на переименованную директорию), создаю новую, с таким-же именем и сразу монтирую. То есть

 mv  /usr  /usr.org
mount   /usr 

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

RSS-материал