LINUX.ORG.RU

какой прикол я получил после клонирования диска


0

0

Привет!

Есть компьютер, в нем два одинаковых жестких диска, первый - primary master (hda), второй - secondary master (hdc).

На первый диск установлена система CentOS 5 (толи 5.0, толи 5.1, толи 5.2) устанавливал около 9 месяцев назад.
Диск разбит на 4 раздела:
hda1 - /boot
hda2 - /
hda3 - swap
hda4 - /opt

Примерно тогда же впервые склонировал систему на второй диск, командой dd if=/dev/hda of=/dev/hdc.

Недавно проапгрейдил систему до 5.3 и решил еще раз склонировать.
Однако после команды dd if=/dev/hda of=/dev/hdc система впадает в ступор, на экране несколько ошибок (незапомнил), но т.к. надо чтобы сервер работал то перезагружаю.
И ,вуаля, система (раздел - hda2) возвращается на момент первого клонирования диска, а разделы hda1,hda4 как были так и есть с текущими данными.

Такое ощущение что после первого клонирования и перезагрузки, рутовый раздел монтировался не с hda2 a c hdc2.

Сейчас пытаюсь более подробно разобраться.
В мену груб вроде нормально, ядро берется с первого раздела hd0,0 а рутовый раздел с LABEL=/

[root@mail openvpn]# cat /boot/grub/menu.lst
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/hda2
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-128.1.10.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-128.1.10.el5 ro root=LABEL=/
initrd /initrd-2.6.18-128.1.10.el5.img
title CentOS (2.6.18-53.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/
initrd /initrd-2.6.18-53.el5.img
[root@mail openvpn]#

Далее смотрим лейблы, и вот тут есть два раздела с одинаковыми лейблами hda2 и hdc2, и похоже что в этом моменте как раз и загружается hdc2 как рутовый раздел

[root@mail /]# ls -l /dev/disk/by-label/
итого 0
lrwxrwxrwx 1 root root 10 Май 22 15:17 boot -> ../../hda1
lrwxrwxrwx 1 root root 10 Май 22 15:17 opt -> ../../hda4
lrwxrwxrwx 1 root root 10 Май 22 15:17 SWAP-hda3 -> ../../hda3
[root@mail /]# e2label /dev/hda2
/
[root@mail /]# e2label /dev/hdc2
/
[root@mail /]# cat /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/opt /opt ext3 defaults 1 2
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
LABEL=SWAP-hda3 swap swap defaults 0 0

Но что удивительно так это то что команда mount говорит что как рутовый раздел все таки подключен hda2
[root@mail /]# mount
/dev/hda2 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/hda4 on /opt type ext3 (rw)
/dev/hda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

У кого нить было подобное?
Кто знает как система выбирает раздел если есть два раздела с одинаковым лейблом?

Сейчас снова делаю апгрейд до 5.3 и хочу при следующей загрузке поставить чтобы монтировалась не с LABEL=/ а напрямую с /dev/hda2








Да, все таки хоть mount и пишет что монтирован hda2 как рутовый раздел, реально подключен - hdc2 (попробовал делал тестовый файл и монтировал по очереди hda2 и hdc2 на /mnt). Остальные разделы swap, /boot и /opt подключены нормально с диска hda.

Кто знает какой командой посмотреть что реально подключено?

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

> Примерно тогда же впервые склонировал систему на второй диск, командой dd if=/dev/hda of=/dev/hdc.

И в сочетании с этим

> # cat /etc/fstab

> LABEL=/ / ext3 defaults 1 1

> LABEL=/opt /opt ext3 defaults 1 2

> LABEL=/boot /boot ext3 defaults 1 2


Какая феерическая безграмотность!!! Вы хоть подумали, что у Вас теперь по два раздела с метками / (hda1 и hdb1 например), /opt (hda2 и hdb2) и так далее. Естьественно монтирует он тот, который первый под руку попадет, отсюда и все Ваши проблем.

Прочтите уж документацию наконец!

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

[root@mail /]# cat /etc/mtab
/dev/hda2 / ext3 rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
/dev/hda4 /opt ext3 rw 0 0
/dev/hda1 /boot ext3 rw 0 0
tmpfs /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0

[root@mail /]# cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root / ext3 rw,data=ordered 0 0
/dev /dev tmpfs rw 0 0
/proc /proc proc rw 0 0
/sys /sys sysfs rw 0 0
/proc/bus/usb /proc/bus/usb usbfs rw 0 0
devpts /dev/pts devpts rw 0 0
/dev/hda4 /opt ext3 rw,data=ordered 0 0
/dev/hda1 /boot ext3 rw,data=ordered 0 0
tmpfs /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
/proc /var/named/chroot/proc proc rw 0 0
/dev/root /var/named/chroot/var/run/dbus ext3 rw,data=ordered 0 0
/etc/auto.misc /misc autofs rw,fd=6,pgrp=13619,timeout=300,minproto=5,maxproto=5,indirect 0 0
-hosts /net autofs rw,fd=12,pgrp=13619,timeout=300,minproto=5,maxproto=5,indirect 0 0

2Nastishka
Каюсь, безграмотность (скорее безопытность клонирования с лейблами).
Только через опыт пришло понимание чего сделал не так.
Однако и не я один ошибаюсь при этом, команда mount упорно твердит что смонтирован именно hda2 а не hdc2.
Единственный вариант увидеть что на самом деле смонтировано это сделать fsck /dev/hdc2, в этом случае он сругнется что чекается смонтированный раздел.

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

> Однако и не я один ошибаюсь при этом, команда mount упорно твердит что смонтирован именно hda2 а не hdc2.

Я куда вас русским языком послала? Сделать cat /proc/mounts. А вы куда пошли? Не туда.

Наводящий вопрос - что такое /etc/mtab, чем он отличается от /proc/mounts и что по этому поводу написано в man mount?

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

Да, монтирование в RedHat'ах по LABEL=/ это страрющие потенциальные грабли. Если правильно помню, то я наступал на них ещё в 7.2. И совсем не обязательно делать это с помощью dd. Можно взять диск из другого компьютера или попробовать установить другую версию RedHat на другой диск или раздел...

>Единственный вариант увидеть что на самом деле смонтировано это сделать fsck /dev/hdc2

Ну можно и без fsck, допустим взять любой файл, который лежит на корневой ФС, сделать на него stat, получить строчку Device, там будет major/minor и искать файл в /dev.

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

Вам дали содержимое /etc/mtab и содержимое /proc/mounts. Конечно, в man отправлять людей полезно, но все же объясните, что вы хотели узреть в /proc/mounts?

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

> но все же объясните, что вы хотели узреть в /proc/mounts?

В /proc/mounts лежит текущее объективное состояние. Которое может отличаться от того, что пишется в /etc/mtab, поэтому рекомендуют при непонятных раскладах сразу смотреть в /proc/mounts.

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

> Единственный вариант увидеть что на самом деле смонтировано это сделать fsck /dev/hdc2, в этом случае он сругнется что чекается смонтированный раздел.

Ой, только не говорите что единственный вариант проверить заряжен пистолет или нет это приставить его к голове и нажать на курок.

А еще я могу добавить, что уже с XFS у вас такой фокус не пройдет -система увидит тот же UID у уже смонтированного раздела и у монтирующегося, и пойдет по пути mount -o bind. Так что Вы очень сильно неправы в Ваших поступках.

Nastishka ★★★★★
()

Вставлю свою пятикопеечную рекомендацию. Прекратите стучать головой по столбу. Обойдите столб. С удобной для Вас стороны.

alexsaa
()
Ответ на: комментарий от mky

2mky >Ну можно и без fsck, допустим взять любой файл, который лежит на корневой ФС, сделать на него stat, получить строчку Device, там будет major/minor и искать файл в /dev. Действительно, так можно четко сказатьза на каком устройстве, спасибо за ответ.

2Nastishka >Единственный вариант увидеть что на самом деле смонтировано это сделать fsck /dev/hdc2 :-)) нужно читать как "Единственный вариант которым я пока смог воспользоваться чтобы увидеть что на самом деле смонтировано это сделать fsck /dev/hdc2", не нужно воспринимать в штыки мою фразу.

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