LINUX.ORG.RU
ФорумAdmin

mdadm --update=uuid не изменяет UUID

 


0

1

Конфиктуют два рейд-массива, у них одинаковые UUID.

Пробую изменить (пробовал и md2 тоже)

sudo umount --verbose --all-targets /dev/md1
sudo mdadm --stop /dev/md1
sudo mdadm --assemble --update=uuid --uuid=60c356c3-ef2a-4476-84da-184ac6749b3f /dev/md1 /dev/sdn1 /dev/sdm1

Но UUID остаётся прежний:

sudo blkid |grep md1
/dev/md1: LABEL="123" UUID="52f72270-3a5c-4e0d-8b5e-e12e52021577" BLOCK_SIZE="4096" TYPE="ext4"

Мне кажется у blkid и mdadm какие-то разные UUID:

sudo mdadm --detail /dev/md1 | grep UUID
              UUID : 60c356c3:ef2a4476:84da184a:c6749b3f
sudo mdadm --detail /dev/md2 | grep UUID
              UUID : 3dab3042:532f414b:81d776a8:9dbdf424

sudo blkid |grep md
/dev/md1: LABEL="Y1" UUID="52f72270-3a5c-4e0d-8b5e-e12e52021577" BLOCK_SIZE="4096" TYPE="ext4"
/dev/md2: LABEL="R2" UUID="52f72270-3a5c-4e0d-8b5e-e12e52021577" BLOCK_SIZE="4096" TYPE="ext4"

Из-за одинакового UUID могут возникнуть конфликты, ЧЯДНТ?

Что примерно происходит я представляю, но что делать не знаю.

UPD. решил сам. Думал это можно разрулить в рамках mdadm, но кажется единственный метод это:

sudo e2fsck -f /dev/md1
sudo tune2fs /dev/md1 -U $(uuidgen)
★★★

Последнее исправление: hikikomori (всего исправлений: 7)

Ты путаешь UUID массива и UUID файловой системы. blkid показывает последний

P.S. А еще есть UUID у physical volume(LVM), там даже формат у него другой(но blkid его тоже показывает)

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Да, я понял. У меня другая сложность возникла… mdadm почему-то после перезагрузки упорно меняет имена массивов с md1 и md2, на md126 и md127. Если я останавливаю массивы и меняю имена обратно, то после перезагрузки всё повторяется. Не смог это победить, пришлось тупо указать в конфиге:

cat /etc/mdadm.conf  | grep ARRAY
ARRAY /dev/md1 UUID=28784fce:13934b51:b7851a8f:1dc33d78
ARRAY /dev/md2 UUID=e91534ae:3fee458a:adda217d:800f6794

Правильно ли я поступил, и можно ли было обойтись без конфига?

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

Я там не забанен, уже искал. Причины не нашёл. Тупо все советуют прописывать явно в конфиге. А почему именно >=126, откуда это число берется и по какой причине после корректной перезагрузки переназначает - я не нашёл.

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

Особенность ядра. Чтобы новые, не описанные в mdadm.conf массивы не порушили загрузку системы у тебя, в случае хардкода в конфигах.

Чтобы такого не было - надо писать mdadm.conf исходя из выхлопа

mdadm --examine --scan
zemidius
()
Последнее исправление: zemidius (всего исправлений: 1)
Ответ на: комментарий от hikikomori

раньше у тебя и волосы шелковистей были, а теперь вот это…

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

У меня на генте до сих пор по выхлопу из mdadm --scan всё прописано на /dev/md0, /dev/md1 и так далее

Но есть нюанс - genkernel можно заставить класть mdadm.conf в initrd, чтобы он собирал массив на этапе загрузки исходя из этих настроек.

Смотри как и чем у тебя собирается initrd, может там можно сделать также...

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

У меня Manjaro linux https://wiki.archlinux.org/index.php/Mkinitcpio_(Русский)

Как собирается рам диск загрузки системы знаю не так глубоко.

sudo vim /etc/mkinitcpio.conf
HOOKS="base udev autodetect modconf block keyboard keymap resume filesystems"

Максимум, что приходит в голову, добавить туда mdadm_udev, зачем не очень понимаю, вроде бы это для загрузочного массива, где отдельный диск под /boot, и / лежит на рейде.

Повторюсь, у меня массивы имели нормальную нумерацию с /md0, до какого-то времени безо всякого вмешательства извне. Я бы хотел восстановить это не изменениями среды, а изменением массива. Ведь если раньше я не трогал окружение, то дело не в нём, либо не только в нём.

hikikomori ★★★
() автор топика

The array has ‘125’ stored as the ‘preferred minor’ in the metadata. You can change this by assembling with –update=super-minor. e.g.

mdadm -S /dev/md125 mdadm -A /dev/md1 –update=super-minor

it should get details of which devices to included from /etc/mdadm.conf.

However it is possible that mdadm.conf in your initrd also the name as /dev/md125. So once you have performed the above, run mkinitrd again, reboot, and report what happens.


I booted the live-cd, mounted my root-device (in my case it was md3 or with the «new name» md126), copied /etc/mdadm.conf from the HDD to the live-system’s /etc, unmounted md126 again. Then I executed these lines (adjusted for each of my devices): Код: mdadm -S /dev/md125 mdadm -A /dev/md1 –update=super-minor

And now my devices are named md1, md3,… again

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

Но этого раньше не было, он не лез в моё именование массивов.

На сколько я помню, запоминание номера md-устройства есть только у массивов с metadata версии 0.90.

# mdadm --detail /dev/md1
/dev/md1:
        Version : 0.90
  Creation Time : Mon Apr  6 02:42:35 2015
     Raid Level : raid1
     Array Size : 10484672 (10.00 GiB 10.74 GB)
  Used Dev Size : 10484672 (10.00 GiB 10.74 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 1
    Persistence : Superblock is persistent
# mdadm --detail /dev/md2
/dev/md2:
        Version : 1.2
  Creation Time : Sun Apr  5 17:46:09 2015
     Raid Level : raid10
     Array Size : 2919648256 (2784.39 GiB 2989.72 GB)
  Used Dev Size : 2919648256 (2784.39 GiB 2989.72 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

В первом выводе есть Preferred Minor, а во втором - нет.

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

Я всё это делал, но без –update=super-minor. Что такое super-minor что подразумевается под этим названием, и как оно может помочь? Подмвывает спросить, раз есть минор, значит и супер мажор есть?)) Раз тащится конфиг, то думаю livecd избыточен.

man mdadm:

       -m, --super-minor=
Minor number of device that array was created for.  Devices which don't have this minor number are excluded.  If you  create
an  array  as  /dev/md1,  then  all  superblocks  will  contain  the minor number 1, even if the array is later assembled as
/dev/md2.

Giving the literal word "dev" for --super-minor will cause mdadm to use the minor number of the md device that is being  as‐
sembled.  e.g. when assembling /dev/md0, --super-minor=dev will look for super blocks with a minor number of 0.

--super-minor is only relevant for v0.90 metadata, and should not normally be used.  Using --uuid is much safer.

А про –update= не нашёл.

hikikomori ★★★
() автор топика
Последнее исправление: hikikomori (всего исправлений: 2)
Ответ на: комментарий от hikikomori

У меня 1.2

Тююююю … Нам с вами не по пути :(

Владимир 123

anonymous
()

Еще Раз; Ищи в иНе:md216 и md217G Пользуй загуборные сайты. И там гуля переводчик.

Bootmen ☆☆☆
()
Последнее исправление: Bootmen (всего исправлений: 1)

Я там не забанен, уже искал

У меня есть лекарство. Но, с тобой не поделюсь. Сам ищи.

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