Перенос разделов и ОС

Автор exaile, 07 октября 2015, 12:26:23

« назад - далее »

0 Пользователи и 9 гостей просматривают эту тему.

exaile

Здравствуйте. Нужно перенести ОС с одного харда на другой. Прочёл кучу инфы и решил делать с помощью tar. Архив уже создал.

Теперь осталось с разметкой диска, вот моя схема:

parted -l
Model: ATA WDC WD2502ABYS-1 (scsi)
Disk /dev/sda: 250GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End    Size    Type      File system     Flags
1      1049kB  240GB  240GB   primary   ext4            boot
2      240GB   250GB  10.2GB  extended
5      240GB   250GB  10.2GB  logical   linux-swap(v1)


Model: ATA WDC WD20EFRX-68E (scsi)
Disk /dev/sdb: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags


/dev/sda это источник (текущая ОС), перенести надо на /dev/sdb

Попробовал скопировать но нельзя т.к. in use:

Source partition number? 1
Error: Partition /dev/sda1 is being used. You must unmount it before you modify it with Parted.


Подскажите пожалуйста дальнейшие шаги, дабы не ошибиться.
partedom пользуюсь впервые, как там разбить так же как /dev/sda ?

df -hT
Filesystem                                             Type      Size  Used Avail Use% Mounted on
rootfs                                                 rootfs    220G   14G  195G   7% /
udev                                                   devtmpfs   10M     0   10M   0% /dev
tmpfs                                                  tmpfs     2.4G  252K  2.4G   1% /run
/dev/disk/by-uuid/141bc1e6-6c73-4d04-9c64-d45574ba7731 ext4      220G   14G  195G   7% /
tmpfs                                                  tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs                                                  tmpfs     6.7G     0  6.7G   0% /run/shm

Modigar

Цитата: exaile от 07 октября 2015, 12:26:23Попробовал скопировать но нельзя т.к. in use:
С какой нибудь live системы загрузиться

exaile

Цитата: Modigar от 07 октября 2015, 13:03:27
Цитата: exaile от 07 октября 2015, 12:26:23Попробовал скопировать но нельзя т.к. in use:
С какой нибудь live системы загрузиться

Смысл в том, что я не хотел бы перезагружать текущую ОС. Нужно получиться клон системы на другом hdd и вставить его в другой сервер, имезнить IP и юзать. Пытаюсь сообразить как получить такую же разметку в ручную, но что то не могу вкурить с Start End и extended.

yura_n

Цитата: exaile от 07 октября 2015, 12:26:23Архив уже создал.
Ключ -p при создании использовали?
Цитата: exaile от 07 октября 2015, 12:26:23Теперь осталось с разметкой диска, вот моя схема:

fdisk -l

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

exaile

#4
Цитата: yura_n от 07 октября 2015, 14:41:38
Цитата: exaile от 07 октября 2015, 12:26:23Архив уже создал.
Ключ -p при создании использовали?
Цитата: exaile от 07 октября 2015, 12:26:23Теперь осталось с разметкой диска, вот моя схема:

fdisk -l

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

Архив делался такой командой - tar --checkpoint=.10 --totals --create --gzip --one-file-system / > myserver.tgz

Вот по этой инструкции: https://toster.ru/q/39805

Т.к. в сети не могу найти нормальной и работающей схемы для переноса ОС на другой hdd. Каждый делает по своему (dd, tar, rsync, dump, etc) Буду благодарен, если подскажите нормальную инструкцию для переноса hdd с ОС на одинаковое железо, которую можно использовать повседневно.

Разметка простая - делалась она установщиком Debian. Моя цель это не ставить каждый раз по новой ОС если нужно поднять идентичный сервер (в ручную только поправить конфиги). Можно конечно и lvm еще сюда прикрутить и mdadm raid1, что скажете ?

fdisk -l

Disk /dev/sda: 250.0 GB, 250000000000 bytes
255 heads, 63 sectors/track, 30394 cylinders, total 488281250 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe3e3e3e3

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   468441087   234219520   83  Linux
/dev/sda2       468443134   488280063     9918465    5  Extended
/dev/sda5       468443136   488280063     9918464   82  Linux swap / Solaris

WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System


Размер сектора как видим здесь 4096 уже.

yura_n

#5
Я не очень понял зачем swap раздел держать на расширенном разделе. Ну да ладно. Вот это лишнее:

tar --checkpoint=.10 --totals --create --gzip --one-file-system / > myserver.tgz

Вы архивируете файловую систему целиком, от того у вас и возник вопрос: а что теперь делать дальше? ;D Если вы выполните:

cd /
ls -al

То увидите, что там присутствует каталоги и симлинки, то есть примерно все выглядит так:

bin
boot
dev
etc
home
lib -> lib64
lib32
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
sys
tmp
usr
var

Чтобы не задумываться о том, как повторить разметку, бэкапить надо сами каталоги. Например:

tar cpvfz bin.tar.gz /bin

Симлинки бэкапить не нужно, их потом нужно просто создать вручную. А также не нужно бэкапить каталоги dev,
lost+found (это каталог, который создается при создании раздела), media (если он пустой), proc, sys, tmp - это лишняя работа.
Каталоги dev, media, proc, sys, tmp нужно будет создать вручную.
Если вы забэкапите сами каталоги, то разделы вы сможете создать без всяких заморочек с помощью cfdisk, например.
Потом, правда, может оказаться проблемой восстановление загрузчика.

exaile

#6
Цитата: yura_n от 07 октября 2015, 15:16:24
Я не очень понял зачем swap раздел держать на расширенном разделе. Ну да ладно. Вот это лишнее:

tar --checkpoint=.10 --totals --create --gzip --one-file-system / > myserver.tgz

Вы архивируете файловую систему целиком, от того у вас и возник вопрос: а что теперь делать дальше? ;D Если вы выполните:

cd /
ls -al

То увидите, что там присутствует каталоги и симлинки, то есть примерно все выглядит так:

bin
boot
dev
etc
home
lib -> lib64
lib32
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
sys
tmp
usr
var

Чтобы не задумываться о том, как повторить разметку, бэкапить надо сами каталоги. Например:

tar cpvfz bin.tar.gz /bin

Симлинки бэкапить не нужно, их потом нужно просто создать вручную. А также не нужно бэкапить каталоги dev,
lost+found (это каталог, который создается при создании раздела), media (если он пустой), proc, sys, tmp - это лишняя работа.
Каталоги dev, media, proc, sys, tmp нужно будет создать вручную.
Если вы забэкапите сами каталоги, то разделы вы сможете создать без всяких заморочек с помощью cfdisk, например.
Потом, правда, может оказаться проблемой восстановление загрузчика.

По поводу swap - установщик разметил сам так, т.к. был режим auto.

То есть вы предлагаете создать образ так:

tar cpvfz bin.tar.gz /bin && tar cpvfz bin.tar.gz /boot && tar cpvfz bin.tar.gz /etc и так далее ?

Или типа такого можно с исключениями - tar cpvfz /backup.tgz --exclude=/media --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys / ?
По мимо симлинков в корне, их еще множество в поддерикториях ведь - мне тоже их везде в ручную потом создавать? Про dev, media, proc, sys, tmp знаю, спасибо.

cfdisk так же не работает с GPT и диском размером 2TB. В любом случае вопрос разметки через parted остаётся у меня открытым, по идее мне нужен корень full и swap на 8096MB.

yura_n

#7

tar cpvfz bin.tar.gz /bin && tar cpvfz bin.tar.gz /boot && tar cpvfz bin.tar.gz /etc и так далее ?

Ну если вам удобно такие длинные строки строчить... В общем да.
P.S. Только я подразумевал каждый каталог бэкапить по отдельности. А вас в строке указан один и тот-же архив???
Цитата: exaile от 07 октября 2015, 15:35:06По мимо симлинков в корне, их еще множество в поддерикториях ведь - мне тоже их везде в ручную потом создавать?
Это не нужно. Все что в подкаталогах команда tar забэкапит.
Цитировать
В любом случае вопрос разметки через parted остаётся у меня открытым, по идее мне нужен корень full и swap на 8096MB.
В этом случае у вас остается только вопрос разметки. Который скорее всего можно решить с помощью LiveCD.

exaile

#8
Цитата: yura_n от 07 октября 2015, 15:39:56P.S. Только я подразумевал каждый каталог бэкапить по отдельности. А вас в строке указан один и тот-же архив???

Да это я с копипастом уже ошибся, спасибо буду пробовать. Но если появятся вопросы или трудности - уж извините буду спрашивать тут :)

Cообщение объединено 07 октября 2015, 17:43:53

Дошёл до правки fstab.

Вот так разметил диск:

Model: ATA WDC WD20EFRX-68E (scsi)
Disk /dev/sdb: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system     Name    Flags
1      1049kB  3146kB  2097kB  ext4            grub    bios_grub
2      3146kB  1983GB  1983GB  ext4            rootfs  boot
3      1983GB  2000GB  17.0GB  linux-swap(v1)  swap


Сейчас я уже в chroot /mnt, архив распаковал.

blkid

/dev/sdb1: UUID="dcb0e3de-3d85-4a0b-9973-595020b742a9" TYPE="ext4"
/dev/sdb2: UUID="3d7cb12a-c027-4a94-ad1b-ba6a6211d796" TYPE="ext4"
/dev/sdb3: UUID="b0d06592-8294-43fc-be37-44e98039847b" TYPE="swap"


/dev/sdb1 пришлось делать для grub, иначе ругался.

Еще вычитал такое:

ЦитироватьПри использовании интерфейса UEFI для загрузки системы (вместо BIOS), помете загрузочный раздел как системный раздел EFI. Parted делает это автоматически, когда устанавливается опция boot у раздела

Но у меня просто BIOS и поэтому я не создавал отдельный раздел для UEFI, а просто пометил /dev/sdb2 как boot.

Grub поставился:

grub-install /dev/sdb
Installation finished. No error reported.


Вопрос: нужно ли /dev/sdb1 прописывать в fstab ? Ведь отдельно раздела /boot я не делал по идее.

И какой у меня grub в итоге второй или первый?

grub-install -v
grub-install (GRUB) 1.99-27+deb7u2

yura_n

#9
Цитата: exaile от 07 октября 2015, 15:48:23Вопрос: нужно ли /dev/sdb1 прописывать в fstab ? Ведь отдельно раздела /boot я не делал по идее.
У вас sdb1 и sdb2 - это какие-то разделы. Скорее всего один раздел - это корень. Если вы не укажите корневой раздел в fstab, вы просто не сможете загрузиться.

exaile

Ну не какие то, я же привёл вывод parted -l.

sdb1 - раздел для grub2
sdb2 - корень

Когда я был в чруте /mnt я поправил там fstab в соответствии с выводом blkid.

blkid
/dev/sda5: UUID="d658c8b4-24e3-4cf9-9a24-29e6d335a27b" TYPE="swap"
/dev/sda1: UUID="141bc1e6-6c73-4d04-9c64-d45574ba7731" TYPE="ext4"
/dev/sdb1: UUID="dcb0e3de-3d85-4a0b-9973-595020b742a9" TYPE="ext4"
/dev/sdb2: UUID="3d7cb12a-c027-4a94-ad1b-ba6a6211d796" TYPE="ext4"
/dev/sdb3: UUID="b0d06592-8294-43fc-be37-44e98039847b" TYPE="swap"


Сейчас ОС не грузиться, вот скрин:

Ругается на UUID 141bc1e6-6c73-4d04-9c64-d45574ba7731, но в fstab я указывал верный от /dev/sdb2 3d7cb12a-c027-4a94-ad1b-ba6a6211d796 - загрузился с live-cd, примонтировал и проверил - всё верно. Почему пишет про UUID от /dev/sda1 не понимаю...

yura_n

Цитата: exaile от 07 октября 2015, 18:47:07Ну не какие то, я же привёл вывод parted -l.
Команда показывает разделы, но не показывает что и куда вы монтируете.
Цитата: exaile от 07 октября 2015, 18:47:07sdb1 - раздел для grub2
Может быть для /boot? Зачем грубу раздел?
Цитата: exaile от 07 октября 2015, 18:47:07но в fstab я указывал верный
Вы fstab приведите. А то не слишком понятно о чем вообще идет речь.

exaile

#12
Цитата: yura_n от 07 октября 2015, 18:54:57
Цитата: exaile от 07 октября 2015, 18:47:07Ну не какие то, я же привёл вывод parted -l.
Команда показывает разделы, но не показывает что и куда вы монтируете.
Цитата: exaile от 07 октября 2015, 18:47:07sdb1 - раздел для grub2
Может быть для /boot? Зачем грубу раздел?
Цитата: exaile от 07 октября 2015, 18:47:07но в fstab я указывал верный
Вы fstab приведите. А то не слишком понятно о чем вообще идет речь.

Не холивара ради, я размечал по этой статье https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Disks/ru это более менее САМЫЙ подробный faq по parted, с генту я тоже знаком к тому же, так вот grub-install не работал для GPT пока не создал для него раздел и в этой же статье сказано:

ЦитироватьТеперь создайте 2МБ раздел, который будет использоваться для загрущика GRUB2. Используйте команду mkpart и передайте parted о начале в 1 МБ и конце в 3 МБ (для создания раздела размером 2 МБ).

Вот fstab. Эээххх, в общем беда какая то, так просто не помигрировать между серверами из-за этих новых EFI, GPT, GRUB2, раньше гораздо  проще было! Да и на ZFS это куда проще делается через пересылку snapshot. Не знаю может и руки конечно :)

UPD: Ну правильно, я уже загуглил и оказывается что /boot/grub/grub.cfg тоже завязан на этих UUIDAх грёбанных и там на старый как раз и ссылается, но править там в ручную как то не моветон мне кажется. Сделал update-grub, сейчас проверю еще раз.


yura_n

Цитата: exaile от 07 октября 2015, 19:08:00UPD: Ну правильно, я уже загуглил и оказывается что /boot/grub/grub.cfg тоже завязан на этих UUIDAх грёбанных и там на старый как раз и ссылается, но править там в ручную как то не моветон мне кажется.
Конфиги груба должны в /etc лежать. Может там посмотреть?

exaile

Цитата: yura_n от 07 октября 2015, 19:20:14
Цитата: exaile от 07 октября 2015, 19:08:00UPD: Ну правильно, я уже загуглил и оказывается что /boot/grub/grub.cfg тоже завязан на этих UUIDAх грёбанных и там на старый как раз и ссылается, но править там в ручную как то не моветон мне кажется.
Конфиги груба должны в /etc лежать. Может там посмотреть?

Помогло в общем update-grub - всё загрузилось, спасибо вам за помощь. в /etc/default/grub лежат да, но там немного другое. GRUB2 использует еще и /boot/grub/grub.cfg