Convert a single-disk Check Point Gaia R82.x Open Server VM on Proxmox into a two-disk Linux md RAID1 system with the same layout as a Check Point software-RAID appliance (md0 /boot, md1 swap, md2 LVM).
Use it to reproduce appliance RAID behaviour in a lab, for example raid_diagnostic, cpstat os -f raidInfo and the weekly raid-check scrub. This is a lab build only. An Open Server with md RAID is not a Check Point supported configuration.
Tested 2026-10-14/15 on R82.00 Build 152 (kernel
4.18.0-372.9.1cpx86_64, Gaiamkinitrd), R82.10 Build 768 (kernel5.14.0-427.13.1cpx86_64, dracut) and R82.20 Build 697 with Jumbo Hotfix Take 10 (blink upgrade from R82.00; same kernel and dracut as R82.10), Proxmox VM with SeaBIOS, i440fx, VirtIO SCSI single, CPU typehoston an Intel Core i5-8500 host, two 160 GiB disks. The manual build steps below are written for R82.10; R82.00 differences lists what changes on R82.00.
What lives where once the build is complete. Both disks are partitioned identically; partition N on sda and sdb are the two halves of the same mirror.
With VirtIO SCSI single, each disk has its own controller and the controllers start up in parallel, so the kernel can name the disks differently on each boot: Proxmox
scsi0may besdaon one boot andsdbon the next. md, LVM and fstab are unaffected (they use UUIDs and md names), and GRUB is on both disks. To see which Proxmox disk a name refers to, runreadlink -f /sys/block/sda/device:host0isscsi0andhost1isscsi1.raid_diagnosticDiskID 0/1 follows the currentsda/sdborder.
| Device | Members | md metadata | Size | Contents | Mounted / used as |
|---|---|---|---|---|---|
sda1, sdb1 |
(not RAID) | none | 1 MiB | GPT bios_grub partition: holds the GRUB core image on each disk |
(none) |
md0 |
sda2 + sdb2 |
1.0 (superblock at end, so GRUB can read it) | 300 MiB | ext3, label /boot: kernel, initramfs, grub2/, SW_RAID flag |
/boot (fstab: /dev/md0) |
md1 |
sda3 + sdb3 |
1.2 | 7.7 GiB | swap, label SWAP-sda2 |
swap (fstab: /dev/md1) |
md2 |
sda4 + sdb4 |
1.2, internal write-intent bitmap | 152 GiB | LVM physical volume for VG vg_splat |
see below |
Logical volumes in vg_splat (all on md2):
| LV | Size | Filesystem | Mounted at |
|---|---|---|---|
lv_current |
32 GiB | xfs | / |
lv_log |
32 GiB | xfs | /var/log |
| (free) | ~88 GiB | available for snapshots and upgrades |
Files that make up the RAID configuration:
| File | Purpose |
|---|---|
/etc/mdadm.conf |
ARRAY lines for md0, md1 and md2; copied into the initramfs |
/etc/dracut.conf.d/90-swraid.conf |
R82.10: makes every initramfs rebuild include the mdraid module (see note in step 5) |
/boot/initrd-<kver>.img |
R82.00: initrd rebuilt by Gaia's mkinitrd, which adds raid1.ko and mdadm --assemble --scan by itself |
/boot/SW_RAID |
Contains 1. Tells Check Point tooling (cpdisk -r, raid_diagnostic) that software RAID is active |
/etc/fstab |
/boot on /dev/md0, swap on /dev/md1 |
/boot/grub2/grub.cfg |
Regenerated; loads mdraid1x and finds /boot by md UUID |
/etc/sysconfig/raid-check |
Weekly scrub settings (ENABLED=yes by default on R82.10, no on R82.00) |
Backups left by the build: /etc/fstab.pre-raid, /root/grub.cfg.pre-raid, and /root/initramfs-<kver>.img.pre-raid (R82.10) or /root/initrd-<kver>.img.pre-raid (R82.00).
What changes between the tested releases, as far as this build is concerned. All three use the same disk layout (GPT, p1 bios_grub, p2 /boot, p3 swap, p4 LVM vg_splat), grub2 2.02 and SeaBIOS boot.
| R82.00 | R82.10 | R82.20 (Jumbo Take 10) | |
|---|---|---|---|
| Build tested | 152 | 768 | 697 |
| Kernel | 4.18.0-372.9.1 | 5.14.0-427.13.1 | 5.14.0-427.13.1 |
| mdadm | 4.0 (mdadm-4.0-5.el7) |
4.2 (mdadm-4.2-8.el8) |
4.2 (mdadm-4.2-8.el8) |
| Initramfs builder | Gaia mkinitrd 5.1.19 (nash); needs --builtin=virtio_pci |
dracut 049 + 90-swraid.conf drop-in |
dracut 049 + 90-swraid.conf drop-in |
| Initramfs file | /boot/initrd-<kver>.img |
/boot/initramfs-<kver>.img |
/boot/initramfs-<kver>.img |
lsblk, findmnt, udevadm |
missing | present | present |
| cron | vixie-cron | cronie 1.5.7 | cronie 1.5.7 |
raid-check default |
ENABLED=no |
ENABLED=yes |
ENABLED=yes |
DiskID 1 "resyncing" rule in libraidUtils.so |
present | present | present |
cpdisk -R (disk list for raid_diagnostic) |
fixed SCSI addresses only | all non-USB disks (lsblk) |
all non-USB disks (lsblk) |
raid_diagnostic disks in this VM |
MISSING unless cpdisk is adjusted |
ONLINE |
ONLINE |
activate_sw_raid_vm path |
legacy | dracut | dracut |
R81.20 (kernel 3.10, mdadm 4.0, ENABLED=no) is not covered: an R81.20 test VM crashed during pvmove of the root volume group.
| Setting | Value | Why |
|---|---|---|
| CPU type | host on an Intel host; otherwise an Intel CPU model |
Gaia requires an Intel CPU, and the default QEMU CPU type (x86-64-v2-AES / kvm64) does not work. On an Intel host, host passes the real CPU through. On a non-Intel host, pick an Intel CPU model the host can run (not tested here) |
| BIOS | SeaBIOS (default) | Tested path. The steps install GRUB for i386-pc; UEFI is not covered |
| Machine | i440fx (default) | Tested path |
| SCSI controller | VirtIO SCSI single | Tested path. Each disk gets its own controller |
scsi0 |
Existing Gaia system disk | |
scsi1 |
New disk, same size as scsi0 or larger. Add it only after Gaia is installed |
Becomes /dev/sdb and the second mirror half. The Gaia ISO installer stops with an unsupported-configuration error if a second disk is attached during installation |
| Boot order | scsi0 first, scsi1 second, both enabled |
SeaBIOS only shows GRUB the disks in the boot order. Until sda joins the arrays, /boot exists only on sdb. Without scsi1 in the boot order, the first reboot stops at grub rescue> |
Order of work:
scsi0) and the CPU type above.scsi1 and set the boot order.CPU type on an existing VM, and steps 3 onward from the Proxmox host shell (replace <vmid> and <storage>):
qm set <vmid> --cpu host
qm snapshot <vmid> pre-raid --description "Single disk, before SW RAID"
qm set <vmid> --scsi1 <storage>:160
qm set <vmid> --boot 'order=scsi0;scsi1'
In the web UI: Hardware > Add > Hard Disk (Bus/Device SCSI 1, same size), then Options > Boot Order and tick scsi1 below scsi0.
Take the snapshot before adding the disk. Rolling back is then a clean return to the single-disk system.
Size the disk before converting. On an Open Server, the supported way to add storage is to attach another virtual disk and extend
vg_splatonto it (sk94671, Check Point login required); growing a virtual disk in place is no longer supported. After the RAID conversion that option is gone too:
- an extra disk added to
vg_splatwould be unmirrored storage inside the mirrored volume group, and- on R82.10 and later,
cpdisk -Rlists every non-USB disk, andraid_diagnosticreports any disk that is not a member of every md array asDISC_FAILED, so the extra disk would appear as a failed disk inraid_diagnostic,cpstatand monitoring.To get more space later, rebuild the VM with larger disks.
sda1 bios_grub, sda2 /boot, sda3 swap, sda4 LVM (vg_splat). Check with parted -s /dev/sda print./dev/sdb is blank: parted -s /dev/sdb print reports unrecognised disk label.The activate_sw_raid_vm script automates the manual build steps below in two phases, with a cold start in between. Attach the script to this page, copy it to the gateway (for example /home/admin/activate_sw_raid_vm, mode 755) and run it as root from Expert mode. Complete the Prerequisites first, except the boot order: the script tells you when to change it.
/home/admin/activate_sw_raid_vm --check # pre-checks and plan only, changes nothing
/home/admin/activate_sw_raid_vm # phase 1, then again after the cold start for phase 2
| Run | What it does | Ends with |
|---|---|---|
| 1st (phase 1) | Pre-checks, then build steps 1-6: partition the second disk, create degraded md0/md1/md2, move /boot, swap and vg_splat (pvmove), rebuild the initramfs with mdraid, install GRUB on both disks |
Instructions for the Proxmox web UI (add the second disk to the boot order), then powers the VM off after you press ENTER |
| 2nd (phase 2) | Checks the VM booted from the arrays, then build steps 8-9: add the original disk's partitions, wait for the resync, write /boot/SW_RAID, finalize mdadm.conf, the initramfs and GRUB |
RAID status (/proc/mdstat, cpdisk, raid_diagnostic) and an offer to reboot |
| Later runs | Nothing to change | Prints the RAID status |
In the lab (160 GiB disks, 64 GiB of logical volumes) phase 1 took about 3 minutes and phase 2 about 25 minutes, almost all of it resync.
Behaviour worth knowing:
lsblk, findmnt and udevadm; R82.00 lacks those and uses Gaia's mkinitrd (with --builtin=virtio_pci) and reads /sys and /proc instead. Any other R82 release gets a warning and the path that matches the tooling it ships: dracut if present, otherwise Gaia's mkinitrd. R81.x is refused: an R81.20 test VM crashed and rebooted during the pvmove of the root volume group.yes. --yes skips the questions, including the ENTER before power-off.sda and sdb can swap between boots. Phase 2 identifies the original disk by its partition labels (oldboot, oldswap), so a swap does not matter. If there are more than two disks, phase 1 needs --target /dev/sdX./etc/activate_sw_raid_vm.state and logs everything to /var/log/activate_sw_raid_vm.log. If phase 2 is interrupted during the resync, run the script again and it carries on. If phase 1 fails part way, it refuses to continue: roll back to the pre-RAID snapshot.The cold start between the phases matters. Proxmox only applies a boot-order change when the VM is started from powered off; a reboot from inside Gaia keeps the old order.
The manual equivalent of the script, for reference or troubleshooting. Approximate time: 30-40 minutes, mostly pvmove and the final resync.
Copy sda's partition table to sdb, give it new GUIDs, and mark partitions 2-4 as Linux RAID.
sgdisk /dev/sda -R /dev/sdb
sgdisk -G /dev/sdb
sgdisk -t 2:fd00 -t 3:fd00 -t 4:fd00 /dev/sdb
partprobe /dev/sdb; udevadm settle
grep sdb /proc/partitions
Expect sdb1 to sdb4 with the same sizes as sda1 to sda4.
sda is still in use, so each array starts with one member and a missing slot.
mdadm --create /dev/md0 --level=1 --raid-devices=2 --metadata=1.0 --run missing /dev/sdb2
mdadm --create /dev/md1 --level=1 --raid-devices=2 --metadata=1.2 --run missing /dev/sdb3
mdadm --create /dev/md2 --level=1 --raid-devices=2 --metadata=1.2 --bitmap=internal --run missing /dev/sdb4
cat /proc/mdstat
Expect three arrays showing [2/1] [_U].
mdadm: Fail to create md0 when using /sys/module/md_mod/parameters/new_array, fallback to creation via nodeis harmless. Gaia already has an emptymd0device node, and mdadm reuses it.
cp -a /etc/fstab /etc/fstab.pre-raid
# /boot -> md0
mkfs.ext3 -q -L /boot /dev/md0
e2label /dev/sda2 oldboot
mkdir -p /mnt/newboot
mount /dev/md0 /mnt/newboot
rsync -aHAX /boot/ /mnt/newboot/
umount /mnt/newboot
umount /boot
mount /dev/md0 /boot
# swap -> md1
swapoff /dev/sda3
swaplabel -L oldswap /dev/sda3
mkswap -L SWAP-sda2 /dev/md1
swapon /dev/md1
# fstab: mount by md device, not label (the labels also exist on member partitions)
sed -i 's#^LABEL=/boot\([[:space:]]\)#/dev/md0\1#; s#^LABEL=SWAP-sda2\([[:space:]]\)#/dev/md1\1#' /etc/fstab
grep -E 'md0|md1' /etc/fstab
df -h /boot; tail -1 /proc/swaps
pvmove copies / and /var/log live. It took a few minutes in the lab for 64 GiB of allocated extents.
On a system that has been upgraded, vg_splat also holds the pre-upgrade snapshot Gaia keeps for rollback (for example lv_Blink_R82_57, 32 GiB, after a blink upgrade from R82.00). Check Point calls it a snapshot, but it is a full-copy ordinary logical volume, not an LVM copy-on-write snapshot, so pvmove moves it with the others and the rollback option keeps working; it just adds to the copy time (96 GiB took about 3.5 minutes in the lab).
pvcreate -y /dev/md2
vgextend vg_splat /dev/md2
nohup pvmove -i 30 /dev/sda4 /dev/md2 > /root/pvmove.log 2>&1 &
tail -f /root/pvmove.log # wait for "Moved: 100.00%", then Ctrl-C
vgreduce vg_splat /dev/sda4
pvremove /dev/sda4
pvs # only /dev/md2 left in vg_splat
mdadm --detail --scan | sed 's#/dev/md/#/dev/md#; s/ spares=[0-9]*//' > /etc/mdadm.conf
cat /etc/mdadm.conf
cat > /etc/dracut.conf.d/90-swraid.conf <<'EOF'
# Lab SW RAID1: always include md assembly in the initramfs
add_dracutmodules+=" mdraid "
mdadmconf="yes"
EOF
K=$(uname -r)
cp -a /boot/initramfs-$K.img /root/initramfs-$K.img.pre-raid
dracut -f /boot/initramfs-$K.img $K
lsinitrd /boot/initramfs-$K.img | grep -E 'sbin/mdadm$|raid1.ko|etc/mdadm.conf'
Expect usr/sbin/mdadm, raid1.ko and etc/mdadm.conf in the listing.
Why the drop-in file? R82.10 builds the initramfs with dracut. Check Point ships
/etc/dracut.conf.d/99-upgrade, which already requestsmdraid, but the file has no.confextension, so ordinary dracut runs ignore it. Without90-swraid.confthe initramfs cannot assemble md2 and boot fails to find the root LV. The drop-in also covers later rebuilds, for example by a Jumbo Hotfix.
Flush the block cache first. Otherwise grub2-probe and grub2-install can read stale data for sdb and report unknown filesystem.
sync
for d in /dev/sda /dev/sdb /dev/sdb2 /dev/sdb4; do blockdev --flushbufs $d; done
echo 3 > /proc/sys/vm/drop_caches
grub2-probe -t fs /boot # expect: ext2
grub2-probe -t abstraction /boot # expect: diskfilter mdraid1x
cp -a /boot/grub2/grub.cfg /root/grub.cfg.pre-raid
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-install --no-floppy --force --recheck /dev/sda
grub2-install --no-floppy --force --recheck /dev/sdb
The regenerated grub.cfg keeps Check Point's kernel options; crashkernel= comes from /etc/appliance_config.xml. The warning Couldn't find physical volume '(null)' is harmless. It comes from GRUB scanning the LVM root for the theme files, and the boot entries load /boot from md0.
reboot
After it comes back:
cat /proc/mdstat # md0/md1/md2 active, [2/1] [_U]
df -h / /boot /var/log # /boot on /dev/md0
pvs # /dev/md2 only
tail -1 /proc/swaps # /dev/md1
If the console shows
grub rescue>,scsi1is missing from the Proxmox boot order (runlsat the prompt: only(hd0)is listed). Fix the boot order and reset the VM. Nothing on disk is damaged.
sgdisk -t 2:fd00 -t 3:fd00 -t 4:fd00 /dev/sda
partprobe /dev/sda; udevadm settle
wipefs -a /dev/sda2 /dev/sda3 /dev/sda4
mdadm /dev/md0 --add /dev/sda2
mdadm /dev/md1 --add /dev/sda3
mdadm /dev/md2 --add /dev/sda4
echo 1 > /boot/SW_RAID
watch -n10 cat /proc/mdstat # wait until all three show [2/2] [UU]
The full resync took about 20 minutes in the lab for 160 GiB disks. While it runs, md1 or md0 shows resync=DELAYED, because md runs one sync at a time on arrays that share disks.
With /boot mirrored on both disks, GRUB on either disk can boot by itself.
mdadm --detail --scan | sed 's#/dev/md/#/dev/md#; s/ spares=[0-9]*//' > /etc/mdadm.conf
dracut -f /boot/initramfs-$(uname -r).img $(uname -r)
sync; for d in /dev/sda /dev/sdb; do blockdev --flushbufs $d; done; echo 3 > /proc/sys/vm/drop_caches
grub2-install --no-floppy --force --recheck /dev/sda
grub2-install --no-floppy --force --recheck /dev/sdb
reboot
cat /proc/mdstat
cpdisk -r # 1
cpdisk -R # /dev/sda /dev/sdb
raid_diagnostic
cpstat os -f raidInfo
cpstat fails with Failed to establish session with AMON server for the first minute or so after boot, until Check Point services are up. Wait and rerun it. In its output, Volume state 0 means OPTIMAL and Disk state 0 means ONLINE.
Expected raid_diagnostic:
Raid status:
VolumeID:0 RaidLevel: RAID-1 NumberOfDisks:2 RaidSize:159GB State:OPTIMAL Flags:ENABLED
DiskID:0 DiskNumber:0 Vendor:QEMU ProductID:QEMU HARDDISK Revision:2.5+ Size:160GB State:ONLINE Flags:NONE
DiskID:1 DiskNumber:1 Vendor:QEMU ProductID:QEMU HARDDISK Revision:2.5+ Size:160GB State:ONLINE Flags:NONE
Take a Proxmox snapshot of this state (qm snapshot <vmid> raid1-base).
The build steps above are for R82.10. On R82.00 the layout, arrays, pvmove, GRUB and the cold start are identical. These steps differ:
| Step | R82.10 | R82.00 |
|---|---|---|
1, 8: after partprobe |
udevadm settle |
No udevadm. Wait until ls /dev/sdb2 /dev/sdb3 /dev/sdb4 finds all three |
8: wipefs |
One command for all three partitions | Run wipefs -a once per partition |
| 5, 9: initramfs | dracut with the 90-swraid.conf drop-in |
Gaia's mkinitrd; no drop-in needed (see below) |
10: raid_diagnostic |
Both disks ONLINE |
Both disk entries MISSING unless cpdisk is adjusted (see below) |
Step 5 and step 9 on R82.00:
K=$(uname -r)
cp -a /boot/initrd-$K.img /root/initrd-$K.img.pre-raid # step 5 only
mkinitrd -f --builtin=virtio_pci /boot/initrd-$K.img $K
zcat /boot/initrd-$K.img | cpio -it 2>/dev/null | grep -E '^bin/mdadm$|raid1.ko$'
zcat /boot/initrd-$K.img | cpio -i --to-stdout init 2>/dev/null | grep 'mdadm --assemble'
Expect bin/mdadm, lib/raid1.ko and an mdadm --assemble --scan line. Gaia's mkinitrd follows the root LV down to md2 and adds RAID support by itself. --builtin=virtio_pci is needed because R82.00's kernel has the virtio PCI driver built in; without it mkinitrd stops with No module virtio_pci found ... aborting and leaves the old initrd in place.
R82.00's cpdisk -R, which raid_diagnostic uses to list the disks, only accepts disks at fixed SCSI addresses (0:0:0:0 and 1:0:0:0 unless appliance_config.xml sets a raid_mapping). Proxmox places the disks elsewhere, for example 2:0:0:0 and 3:0:0:1, so both disk entries show State:MISSING. The arrays themselves are fine. R82.10's cpdisk lists disks with lsblk and is not affected.
On a ClusterXL member this matters: the cluster daemon's disk check treats
State:MISSINGas a problem and reports the member as unhealthy.
Workaround (lab only; this modifies a Check Point file, and a Jumbo Hotfix can replace it):
for d in /sys/block/sd?; do echo "$(basename $d) $(basename $(readlink -f $d/device))"; done
cp -a /usr/bin/cpdisk /usr/bin/cpdisk.orig
vi /usr/bin/cpdisk
In the raiddisks() function, find the final else branch that sets L_HDD_SCSI_ID="0:0:0:0" and R_HDD_SCSI_ID="1:0:0:0", and replace those values with the two addresses printed by the loop. Then cpdisk -R lists both disks and raid_diagnostic shows them ONLINE. The SCSI addresses stay with each Proxmox disk even when the sda/sdb names swap.
The lab was built for this. The weekly scrub's default in /etc/sysconfig/raid-check depends on the Gaia version:
| Gaia | ENABLED default |
DiskID 1 rule in libraidUtils.so |
|---|---|---|
| R81.20 | no |
present |
| R82.00 | no |
present |
| R82.10 | yes (fresh install and in-place upgrade) |
present |
| R82.20 (Jumbo Take 10) | yes (blink upgrade from R82.00) |
present |
The flaw has existed since at least R81.20; R82.10 is the first release where the scrub runs. On R82.10, raid-check (cron, Sunday 01:00) starts a check on md0, md1 and md2 at the same time. md runs one and queues the others, and mdadm -D reports the queued arrays as resyncing (DELAYED). libraidUtils.so then flags every disk except DiskID 0 as INITIALIZING / OUT_OF_SYNC, and the volume as DEGRADED. No disk is faulty.
Terminal 1:
watch -n5 'mdadm -D /dev/md? | grep -E "^/dev|State :"; raid_diagnostic | grep -E "Volume|DiskID"'
Terminal 2:
echo 3000 > /proc/sys/dev/raid/speed_limit_max # optional: slow the check so the queued state lasts
/usr/sbin/raid-check # stays in the foreground until the checks finish
Expected while checks are queued:
/dev/md0: State : clean, resyncing (DELAYED)
/dev/md1: State : clean, resyncing (DELAYED)
/dev/md2: State : clean, checking
VolumeID:0 ... State:DEGRADED Flags:ENABLED RESYNC_IN_PROGRESS
DiskID:0 ... State:ONLINE Flags:NONE
DiskID:1 ... State:INITIALIZING Flags:OUT_OF_SYNC SyncState: 0%
Stop and clean up (Ctrl-C raid-check first so it does not start the next array):
for m in 0 1 2; do echo idle > /sys/block/md$m/md/sync_action; done
echo 300000 > /proc/sys/dev/raid/speed_limit_max
Fix: set MAXCONCURRENT=1 in /etc/sysconfig/raid-check. Arrays are then checked one after another, nothing is queued, and both disks stay ONLINE.
| Symptom | Cause | Fix |
|---|---|---|
grub rescue> after the first reboot; ls shows only (hd0) |
scsi1 not in the Proxmox boot order, so GRUB cannot see md0 on sdb |
Add scsi1 to the boot order and reset the VM |
grub2-probe: error: unknown filesystem on /boot |
Stale page cache for /dev/sdb from before md wrote to it |
blockdev --flushbufs the disk and partitions, then echo 3 > /proc/sys/vm/drop_caches |
| Boot drops to dracut emergency shell, root LV not found | initramfs built without mdraid |
Boot the pre-raid snapshot, or rebuild with dracut --add mdraid -f from rescue media; make sure 90-swraid.conf exists |
mdadm --add: Cannot find /dev/sda2 |
Partition nodes recreated by udev after partprobe |
udevadm settle, then retry |
/etc/mdadm.conf shows /dev/md/0 or spares=1 |
Default mdadm --detail --scan output, or captured mid-rebuild |
Regenerate with the sed in step 9 after the resync completes |
/proc/mdstat shows sdb4[2] sda4[1] after a reboot (members in the opposite order) |
Disk names swapped between boots (see Volume reference) | Expected; nothing to fix |
R82.00: raid_diagnostic shows both disks State:MISSING, cpdisk -R prints nothing |
R82.00 cpdisk only accepts fixed SCSI addresses |
See R82.00 differences; the arrays are fine |
R82.00: mkinitrd stops with No module virtio_pci found ... aborting |
virtio_pci is built into R82.00's kernel |
Add --builtin=virtio_pci |
R82.20 with a Jumbo hotfix: dracut-install: Failed to find module 'mlnx_ofa_kernel_24' during the initramfs rebuild |
The hotfix ships a Mellanox add-on driver as an archive that dracut cannot install | Harmless for this build; the initramfs still contains mdadm, raid1.ko and mdadm.conf |
cpstat os -f raidInfo: Failed to establish session with AMON server |
Run too soon after boot | Wait a minute and rerun |
mdmonitor.service failed |
No MAILADDR or PROGRAM in /etc/mdadm.conf |
Expected; add one only if you want md event mail |
Roll back to the pre-raid Proxmox snapshot, then remove scsi1 from the VM. Nothing on scsi0 needs repair.