Intereting Posts
Общие вопросы о исходном коде OpenBSD и датах выпуска Установка файла .package в Arch Linux Что случилось с профилем основного администратора в Solaris 11? Является ли xinetd еще лучшим методом, позволяющим нон-корневым демонам прослушивать привилегированные порты? Количество отсчетов подстроки в строке Почему I / O является бесперебойным? Как распознать, какая виртуальная среда используется Расширенный атрибут по символической ссылке Вычислить медианное значение для столбца и сказать, если это значение «ОК» или «ОШИБКА», если оно находится в допустимом диапазоне Почему версии Linux настолько запутывают? Как создать GUI (например, menuconfig) с помощью lxdialog Linux Cluster – SFTP между неудачными серверами Двойной монитор со встроенным и дискретным графическим процессором на Debian Скопировать каталог с помощью SCP Каков подходящий способ сделать «mv ./* ./subdirdir/»?

Необходимые модули GRUB для загрузки на mdadm RAID1

У меня есть управляемый mdadm RAID1 с одним разделом EXT4 (имеющим как файлы ОС, так и файлы GRUB в /boot/grub ), и я хотел бы знать, какие модули и какая конфигурация мне нужна для GRUB для загрузки с него.

Минимальным требуемым grub.cfg является следующее:

 set timeout=1 set root='mduuid/ce16c757e4752e4fa9a2fd4935df1aef' menuentry 'Arch Linux' { linux /boot/vmlinuz-linux root=UUID=05dddf23-1d9f-417e-b3f8-2281a328dc0b rw initrd /boot/initramfs-linux.img } 

Да, немного отличается от длинного потока мусора, который генерируется grub-mkconfig , и, как вы можете видеть, для этой установки не нужны модули.

Моя конкретная настройка – это один раздел на диске в формате MBR, на котором я собрал массив RAID1 и раздел EXT4 на этом массиве.

root переменная устанавливается в mduuid/xxx с UUID массива RAID, который вы можете получить, запустив mdadm --examine /dev/sdX на диске или разделе, который является частью массива RAID. Это не UUID файловой системы EXT4 поверх RAID , не используйте UUID, сообщаемый lsblk поскольку он даст вам UUID раздела, который там не работает.

Вы также можете установить root переменную в md/... с меткой вашего массива RAID, указанным при его создании ( mdadm ... -N "some label" ... ). Для других способов указания корневого устройства ознакомьтесь с документацией .

UUID по строке параметра ядра – это UUID файловой системы, которая находится поверх массива RAID – этого можно получить, запустив lsblk -o NAME,UUID :

 NAME UUID loop0 └─loop0p2 ce16c757-e475-2e4f-a9a2-fd4935df1aef └─md127 05dddf23-1d9f-417e-b3f8-2281a328dc0b loop1 └─loop1p2 ce16c757-e475-2e4f-a9a2-fd4935df1aef └─md127 05dddf23-1d9f-417e-b3f8-2281a328dc0b 

В моем случае это соответствует mdXXX устройства 05dddf23-1d9f-417e-b3f8-2281a328dc0b05dddf23-1d9f-417e-b3f8-2281a328dc0b . Не используйте UUID базового раздела – loopXp2 в этом примере.


В качестве бонуса, вот некоторые ужасные сценарии оболочки, которые работают, если вы хотите поэкспериментировать с GRUB в виртуальной машине QEMU / KVM.

Чтобы создать некоторые необработанные диски, они должны быть «сырыми» для монтирования на хосте, вы не можете использовать qcow2 или vmdk:

 qemu-img create -f raw driveX.img XXXG # name and size 

Чтобы запустить виртуальную машину с двумя дисками, ISO (в данном случае это Archlinux, но это может быть что угодно) и базовый доступ к сети:

 /path/to/qemu-system-x86_64 -m 512 -cpu host -smp 2,cores=2,sockets=1 -machine q35,accel=kvm -balloon none -device ahci,id=ahci -drive if=none,file=drive1.img,format=raw,cache=none,aio=native,id=hdd1 -device ide-hd,bus=ahci.0,drive=hdd1 -drive if=none,file=drive2.img,format=raw,cache=none,aio=native,id=hdd2 -device ide-hd,bus=ahci.1,drive=hdd2 -drive if=none,file=arch.iso,format=raw,cache=none,aio=native,id=iso,snapshot=on -device ide-cd,bus=ahci.2,drive=iso -device pci-ohci,id=ohci -device usb-kbd,bus=ohci.0 -device usb-mouse,bus=ohci.0 -netdev user,id=net0 -device e1000-82545em,autonegotiation=on,netdev=net0 -realtime mlock=on 

Сценарий для монтирования разделов виртуальной машины на хосте, обязательно запустите QEMU перед запуском, чтобы не повредить разделы:

 losetup -P -f drive1.img # create loopback device nodes for the virtual disks losetup -P -f drive2.img mdadm --assemble /dev/md/root /dev/loop0p1 /dev/loop1p1 # assemble the RAID # some distributions will auto-detect and assemble them so it sometimes fails # running this script a second time usually succeeds in mounting it anyway # if it failed the first time - I don't have time to fix the real issue mount "/dev/md/root" rootfs # mount the root FS of the VM in this directory 

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

 umount rootfs # umount the FS mdadm --stop /dev/md127 # sometimes the array appears under these names mdadm --stop /dev/md126 # so we stop them as well just to be safe mdadm --stop /dev/md/root # the correct name losetup -D # detach all loop device nodes