LINUX.ORG.RU

Перенести ось с одного винта на другой


0

0

Есть домашний сервачек с 2-я некр^W IDE винтами. На одном ОС, на другом данные. Тот на котором ОС надо срочно освободить и перенести все на второй диск. Второй весь отформатирован в ext3. Не сильно силен в консольной переразбивке дисков поэтому пока бекапятся данные пишу этот топик. Как я вижу решение проблемы:
1) уменьшить ext3 с данными
2) создать разделы для /, /boot, swap
3) перенести данные. Как переносить? Сделдать дамп dd или просто скопировать?
4) запустить grub-install или как он там называется.
Или я что-то делаю не так?


2) создать разделы для /, /boot, swap

Минимально достаточно /.

Сделдать дамп dd или просто скопировать?

Можно просто скопирвовать.

Или я что-то делаю не так?

Вроде всё так. Только, наверное, конфиг grubа, таки, придётся поправить.

Ximen ★★★★
()

3. Почти совсем просто скопировать - проследить чтобы аттрибуты сохранились.

Остальное всё так.

gena2x ★★★
()

Ещё в дополнении скажу что скорее всего придётся подправить /etc/fstab и grub.conf
В фстаб советую использовать UUIDы или LABELы чтобы не зависеть от местоположения винтов и партиций.

Nao ★★★★★
()
Ответ на: комментарий от Nao

Не знаю как и чем генерируются UUID поэтому всегда при подключении нового диска правил ркчами в fstab-е /dev/sd..

ALeo
() автор топика
Ответ на: комментарий от Ximen

>> Или я что-то делаю не так?

Вроде всё так. Только, наверное, конфиг grubа, таки, придётся поправить.

только, подозреваю, в итоге окажется что линукс - говно...

scaldov ★★
()
Ответ на: комментарий от ALeo

А не надо их генерить, они при создании фс генерются.
sudo blkid покажет uuid

Ещё можно LABEL использовать (tune2fs -L labelname /dev/device)

Nao ★★★★★
()
Ответ на: комментарий от Nao

>Кстати, fallback если blkid нету по какойто причине:

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


подозреваю что если нет blkid, то симлинки /dev/disk/by-uuid/* просто не смогут сгенериться.

pupok ★★
()

А чем уменьшить размер раздела ext3? В интернетах натыкался на parted, resize, resize2fs...

ALeo
() автор топика
Ответ на: комментарий от yumko

Судя по манам resize не для этого.
resize2fs:

The resize2fs program does not manipulate the size of partitions. If you wish to enlarge a filesystem, you must make

sure you can expand the size of the underlying partition first.
А parted вроде как уменьшает раздел но только в начало, хотя мне это не важно. И, собственно, в чем разница между изменением размера фс и раздела.

ALeo
() автор топика

И что такое loop (Partition Table: loop), в гугле пока только msdos встречал. Может поэтому не хочет ресайзиться ((parted) resize 1 10GB -1s
Error: File system has an incompatible feature enabled.)

ALeo
() автор топика
Ответ на: комментарий от ALeo

надо сначала отключить журнал на екст3 и ещё некоторые другие фичи. какие точно - не помню, но resize2fs с каким-то ключом это пишет.

отключается это с помощью tune2fs.
потом надо сделать fsck.ext2
потом ресайз, потом tune2fs включаешь это обратно.
потом надо сделать fsck.ext3

scaldov ★★
()
Ответ на: комментарий от ALeo

а, ну да.

b перед тем, как ресайзить саму ФС, надо отресайзить раздел.

как - хз, читай в гуголе, я пользуюсь LVM2 (иногда поверх RAID), там это просто lvresize.

scaldov ★★
()
Ответ на: комментарий от ALeo

> И, собственно, в чем разница между изменением размера фс и раздела.
Раздел - это просто несколько циферок в MBR(EBR), и «изменение размера раздела» это фактический просто изменение этих цифр (начало, размер). Его при желании можно сделать через sfdisk (который слов «файловая система» знать не знает) или даже через hex-editor)

Изменение размера фс это уже намного более сложный процесс, тут важно знать структуру самой фс. Некоторые фс например стандартными утилитами нельзя уменьшить (только увеличить)

И вообще, почитай википедию про разделы и MBR.

И что такое loop (Partition Table: loop), в гугле пока только msdos встречал.

ИМХО, на тип, выставленный в партишн тейбл, партеду пох, хотя могу и ошибаться.

Может поэтому не хочет ресайзиться ((parted) resize 1 10GB -1s

Error: File system has an incompatible feature enabled.)


Ага. сталкивался с таким. Либо попробуй гпартед посвежее взять, либо ищи какие ему фичи в фс не нравятся и отключай их(я в своё время не смог разобраться), либо используй связку утилит [c,s,]fdisk+resize2fs, только не проеби данные, а почитай сначала на эту тему)

Nao ★★★★★
()
Ответ на: комментарий от scaldov

> перед тем, как ресайзить саму ФС, надо отресайзить раздел.
аккуратнее с такими заявлениями) В случае уменьшения раздела в таком случае потерять хвост фс.

Nao ★★★★★
()
Ответ на: комментарий от Nao

Ещё можно LABEL использовать (tune2fs -L labelname /dev/device)

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

anonymous
()
Ответ на: комментарий от scaldov

> перед тем, как ресайзить саму ФС, надо отресайзить раздел.
Если расширяешь. А если сжимаешь — то наоборот.

--> all
Кстати, а UUID можно ли заново сгенерить? А то у меня есть два раздела с одинаковыми UUID.

Xenius ★★★★★
()
Ответ на: комментарий от Xenius

tune2fs -U random /dev/device
для остальных фс ищи аналогичные команды.

Nao ★★★★★
()

1) уменьшить ext3 с данными

Не обязательно. Допустим тот раздел с данными у тебя на системе монтировался в /home. Тогда ты просто в ФС на разделе создаёшь директорию home и переносишь все файлы из корня раздела в неё. А потом переносишь все файлы с диска на котором ОС. Т.е. при этом структура директорий вообще не изменится.

2) создать разделы для /, /boot, swap

Отдельный раздел для /boot, опять таки, не обязателен. Обычно выносить /boot на отдельный раздел оправдано, если / на какой-нибудь экзотической ФС или хитром блочном устройстве, которые загрузчик (GRUB) не переваривает.

3) перенести данные. Как переносить? Сделдать дамп dd или просто скопировать?

Просто скопировать. Загрузись с какого-нибудь livecd, подмонтируй старый и новый разделы в разные директории и перенеси всё:

cp -va /mnt/old-system/* /mnt/new-system/

4) запустить grub-install или как он там называется.

Лучше просто grub. А в нём уже установить MBR.

root (hd0,1)
setup (hd0)
Командой root указывается раздел, на котором расположена директория /boot. (hd0,1) - первый раздел нулевого диска (отсчёт и того и другого идёт с нуля). Grub видит диски в том же порядке, в котором их видит BIOS, этот порядок может отличаться от порядка дисков в линуксе. Изменить порядок дисков обычно можно в настройках BIOS'а. Команда setup (hd0) установит «первую ступень» загрузчика в MBR нулевого диска.

И не забудь обновить содержимое /etc/fstab.

Deleted
()
Ответ на: комментарий от Xenius

>> перед тем, как ресайзить саму ФС, надо отресайзить раздел.

Если расширяешь. А если сжимаешь — то наоборот.

очевидно же!

scaldov ★★
()

Acronis Disk Director спешит на помощь!

Cancellor ★★★★☆
()
Ответ на: комментарий от scaldov

Так он же сжимает.
Кстати, не факт что всем очевидно, я бы на это не надеялся.

Xenius ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.