Problem: Cannot install MGA5 from a running live system. Hardware specifics: CLEV0 370sm-a with UEFI enabled, 1 ssd for Win8, another for linux (currently opensuse) and two hdd in isw_fake raid0 for shared work space. The isw_fake raid was built before either OS was installed. There is plenty of space to add MGA. (Steps to reproduce) - uefi boot from an MGA5-live suitably prepared usb stick - selected 'boot mga5 from usb' at the secondary menu - wait till boot of live system completed - open Konsole as su - launch drak-live install - the first gui page comes up - clicking Next makes that page simply disappear - following output appears on console: [root@localhost home]# draklive-install Too late to run INIT block at /usr/lib/perl5/vendor_perl/5.20.0/x86_64-linux-thread-multi/Glib/Object/Introspection.pm line 257. Subroutine Gtk3::main redefined at /usr/lib/perl5/vendor_perl/5.20.1/Gtk3.pm line 293. Error: Invalid argument during seek for read on /dev/sdb Error: Invalid argument during seek for read on /dev/sdb INTERNAL ERROR: unknown device sdb1 MDK::Common::Various::internal_error() called from /usr/lib/libDrakX/devices.pm:130 devices::entry() called from /usr/lib/libDrakX/devices.pm:145 devices::make() called from /usr/lib/libDrakX/fs/type.pm:256 fs::type::call_blkid() called from /usr/lib/libDrakX/fs/type.pm:264 fs::type::type_subpart_from_magic() called from /usr/lib/libDrakX/fsedit.pm:271 fsedit::get_hds() called from /usr/sbin/draklive-install:114 main::umount_first_pass() called from /usr/sbin/draklive-install:133 main::init_hds() called from /usr/sbin/draklive-install:64 main::install_live() called from /usr/sbin/draklive-install:42 [root@localhost home]# sda and sdd are the ssds. SDB and SDC are the raid members. Here is the output from dmraid: [root@localhost by-label]# dmraid -V dmraid version: 1.0.0.rc16 (2009.09.16) shared dmraid library version: 1.0.0.rc16 (2009.09.16) device-mapper version: 4.27.0 [root@localhost by-label]# [root@localhost by-label]# dmraid -s *** Group superset isw_ddicicbcde --> Subset name : isw_ddicicbcde_Volume1 size : 3907039744 stride : 32 type : stripe status : ok subsets: 0 devs : 2 spares : 0 [root@localhost by-label]# dmraid -r /dev/sdc: isw, "isw_ddicicbcde", GROUP, ok, 1953525166 sectors, data@ 0 /dev/sdb: isw, "isw_ddicicbcde", GROUP, ok, 1953525166 sectors, data@ 0 [root@localhost by-label]# [root@localhost by-label]# blkid /dev/sda1: SEC_TYPE="msdos" UUID="CC1F-0F85" TYPE="vfat" PARTLABEL="primary" PARTUUID="b932aaa1-5943-4ecf-8259-ad5b8809fe30" /dev/sda2: UUID="13068d5f-b73f-4c11-9cb6-d52ee57fb2bc" TYPE="swap" PARTLABEL="primary" PARTUUID="7d423845-9906-4591-a7fd-6a49f926834e" /dev/sda3: UUID="6b0e6f45-be57-47ed-b953-d695accc2d78" TYPE="ext4" PARTLABEL="primary" PARTUUID="a15006e6-12cf-4694-ab87-67ae66c8eb8e" /dev/sda4: UUID="3cada5e3-ec5e-458c-95f5-f423031ed8d0" TYPE="ext4" PARTLABEL="primary" PARTUUID="38cc9f47-ba6c-433a-beae-c16b7380dbcf" /dev/sdb: TYPE="isw_raid_member" /dev/sdc: TYPE="isw_raid_member" /dev/sdd1: LABEL="Recovery" UUID="866A08306A082013" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="845d5c7f-cc65-411b-baa2-d1152444f763" /dev/sdd2: UUID="B60B-AA81" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="633f91f6-b786-4884-8c5f-d406dfd2fc27" /dev/sdd4: UUID="58C0200CC01FEECE" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="038ec4eb-3563-4a07-950c-1de4c25e4ce0" /dev/loop0: TYPE="squashfs" /dev/sde1: LABEL="MGALIVE" UUID="F56B-9B1B" TYPE="vfat" PARTUUID="35477518-01" /dev/md126p2: LABEL="RAID0NTFS" UUID="2E04DFA204DF6B7B" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="aa0a9d55-7a90-4d6c-971e-82d591405457" /dev/md126p3: SEC_TYPE="msdos" UUID="3400-DA17" TYPE="vfat" PARTLABEL="primary" PARTUUID="428e5492-4c44-4731-80c0-b42bc22fe430" /dev/md126p4: UUID="ba04a677-3362-47f3-85dc-d403655b144c" TYPE="swap" PARTLABEL="primary" PARTUUID="c389b18a-f1a5-495d-92b1-3c8f92ade8ea" /dev/md126p5: UUID="ac168199-935e-4ed8-a7e5-e7600251118b" TYPE="ext4" PARTLABEL="primary" PARTUUID="0b5570c6-9c11-4af0-b94d-c431283c058b" /dev/md126p6: UUID="4b9827a0-bfd7-41ab-9161-f0d8d6732102" UUID_SUB="d2474511-1db9-44d7-bfa6-4b2ce3b16065" TYPE="btrfs" PARTLABEL="primary" PARTUUID="0cf4e48c-5f4a-4085-bf70-f7e67a535d74" /dev/md126p7: UUID="73cd69f9-02f3-4abc-aa65-42d634672e32" TYPE="ext4" PARTLABEL="primary" PARTUUID="74c05588-e515-4fcd-a65b-893262a002e6" /dev/sdd3: PARTLABEL="Microsoft reserved partition" PARTUUID="19daa586-987b-4217-b497-625fbfb7bf34" /dev/md126: PTUUID="4486e812-4488-46e9-b9f6-5e6a79a483e7" PTTYPE="gpt" /dev/md126p1: PARTLABEL="Microsoft reserved partition" PARTUUID="cd26e1af-e3bc-4a7c-ac9b-29ae6aebc32d" /dev/sdf1: LABEL="STORE N GO mdadm is also installed. The same issue occurred with MGA4 flavours. A related bug (5160) was reported for MGA1 but deferred, while 11289 raises the issue again. It appears that draklive-install does not recognise the isw_array and thinks sdb is a corrupted disk while gparted, blkid and dmraid are aware of the raid array. Net result is that uefi installation of MGA5 on a recent machine with fake raid is not that easy.
CC: (none) => m.p.cleggett
Depends on: (none) => 11105
This output may be relevant .... [root@localhost live]# draklive-install --testing Too late to run INIT block at /usr/lib/perl5/vendor_perl/5.20.0/x86_64-linux-thread-multi/Glib/Object/Introspection.pm line 257. Subroutine Gtk3::main redefined at /usr/lib/perl5/vendor_perl/5.20.0/Gtk3.pm line 293. got: isw_ddicicbcde_Volume1:3907039744:32:stripe:ok:0:2:0 _raid_devices_raw got: DEBUG: not isw at 120034122752 got: DEBUG: isw trying hard coded -2115 offset. got: DEBUG: not isw at 120033040896 got: DEBUG: isw metadata found at 1000204884992 from probe at 1000204884992 got: got: DEBUG: isw metadata found at 1000204884992 from probe at 1000204884992 got: got: DEBUG: not isw at 512110189568 got: DEBUG: isw trying hard coded -2115 offset. got: DEBUG: not isw at 512109107712 got: DEBUG: _find_set: searching isw_ddicicbcde got: DEBUG: _find_set: not found isw_ddicicbcde got: DEBUG: _find_set: searching isw_ddicicbcde_Volume1 got: DEBUG: _find_set: searching isw_ddicicbcde_Volume1 got: DEBUG: _find_set: not found isw_ddicicbcde_Volume1 got: DEBUG: _find_set: not found isw_ddicicbcde_Volume1 got: DEBUG: _find_set: searching isw_ddicicbcde got: DEBUG: _find_set: found isw_ddicicbcde got: DEBUG: _find_set: searching isw_ddicicbcde_Volume1 got: DEBUG: _find_set: searching isw_ddicicbcde_Volume1 got: DEBUG: _find_set: found isw_ddicicbcde_Volume1 got: DEBUG: _find_set: found isw_ddicicbcde_Volume1 got: DEBUG: set status of set "isw_ddicicbcde_Volume1" to 16 got: isw_ddicicbcde_Volume1:3907039744:32:stripe:ok:0:2:0 got: DEBUG: freeing devices of RAID set "isw_ddicicbcde_Volume1" got: DEBUG: freeing device "isw_ddicicbcde_Volume1", path "/dev/sdb" /dev/sdb => isw_ddicicbcde_Volume1 got: DEBUG: freeing device "isw_ddicicbcde_Volume1", path "/dev/sdc" /dev/sdc => isw_ddicicbcde_Volume1 got: DEBUG: freeing devices of RAID set "isw_ddicicbcde" got: DEBUG: freeing device "isw_ddicicbcde", path "/dev/sdb" got: DEBUG: freeing device "isw_ddicicbcde", path "/dev/sdc" got: /dev/sdc:isw:isw_ddicicbcde:GROUP:ok:1953525166:0 got: /dev/sdb:isw:isw_ddicicbcde:GROUP:ok:1953525166:0 ignoring mapper/isw_ddicicbcde_Volume1 as /dev/mapper/isw_ddicicbcde_Volume1 doesn't exist dmraid: using dmraid on HDIO_GETGEO on /dev/sda succeeded: heads=255 sectors=63 cylinders=62260 start=0 HDIO_GETGEO on /dev/sdb succeeded: heads=255 sectors=63 cylinders=56065 start=0 HDIO_GETGEO on /dev/sdc succeeded: heads=255 sectors=63 cylinders=56065 start=0 HDIO_GETGEO on /dev/sdd succeeded: heads=255 sectors=63 cylinders=14593 start=0 HDIO_GETGEO on /dev/sde succeeded: heads=247 sectors=62 cylinders=1021 start=0 HDIO_GETGEO on /dev/sdf succeeded: heads=64 sectors=32 cylinders=8001 start=0 id2hd: 0x35477518=>sdf 0x00000000=>sdc 0xa1259095=>sdd 0xc3072e18=>sde 0x00084bac=>sda 0x060597fb=>sdb id2edd: test_for_bad_drives(/dev/sda on sector #62) 1 /dev/sda1 fat16 normal (2048,321535,319488) 2 /dev/sda2 linux-swap(v1) normal (115185664,119394303,4208640) 3 /dev/sda3 ext4 normal (119394304,161341439,41947136) 4 /dev/sda4 ext4 normal (161341440,1000214527,838873088) found a gpt partition table on /dev/sda at sector 0 blkid gave: vfat CC1F-0F85 blkid gave: swap 13068d5f-b73f-4c11-9cb6-d52ee57fb2bc blkid gave: ext4 6b0e6f45-be57-47ed-b953-d695accc2d78 blkid gave: ext4 3cada5e3-ec5e-458c-95f5-f423031ed8d0 test_for_bad_drives(/dev/sdb on sector #62) Error: Invalid argument during seek for read on /dev/sdb Error: Invalid argument during seek for read on /dev/sdb found a dos partition table on /dev/sdb at sector 0 guess_geometry_from_partition_table sdb: 121601/255/63 is_geometry_valid_for_the_partition_table failed for (sdb1, 34): 1023,254,62 vs 0,0,34 with geometry 121601/255/63 is_geometry_valid_for_the_partition_table failed for (sdb1, 262177): 1023,254,62 vs 16,81,34 with geometry 121601/255/63 INTERNAL ERROR: unknown device sdb1 MDK::Common::Various::internal_error() called from /usr/lib/libDrakX/devices.pm:130 devices::entry() called from /usr/lib/libDrakX/devices.pm:145 devices::make() called from /usr/lib/libDrakX/fs/type.pm:256 fs::type::call_blkid() called from /usr/lib/libDrakX/fs/type.pm:264 fs::type::type_subpart_from_magic() called from /usr/lib/libDrakX/fsedit.pm:271 fsedit::get_hds() called from /usr/sbin/draklive-install:114 main::umount_first_pass() called from /usr/sbin/draklive-install:133 main::init_hds() called from /usr/sbin/draklive-install:64 main::install_live() called from /usr/sbin/draklive-install:42 [root@localhost live]# draklive-install --expert Too late to run INIT block at /usr/lib/perl5/vendor_perl/5.20.0/x86_64-linux-thread-multi/Glib/Object/Introspection.pm line 257. Subroutine Gtk3::main redefined at /usr/lib/perl5/vendor_perl/5.20.0/Gtk3.pm line 293. Error: Invalid argument during seek for read on /dev/sdb Error: Invalid argument during seek for read on /dev/sdb INTERNAL ERROR: unknown device sdb1 MDK::Common::Various::internal_error() called from /usr/lib/libDrakX/devices.pm:130 devices::entry() called from /usr/lib/libDrakX/devices.pm:145 devices::make() called from /usr/lib/libDrakX/fs/type.pm:256 fs::type::call_blkid() called from /usr/lib/libDrakX/fs/type.pm:264 fs::type::type_subpart_from_magic() called from /usr/lib/libDrakX/fsedit.pm:271 fsedit::get_hds() called from /usr/sbin/draklive-install:114 main::umount_first_pass() called from /usr/sbin/draklive-install:133 main::init_hds() called from /usr/sbin/draklive-install:64 main::install_live() called from /usr/sbin/draklive-install:42 [root@localhost live]# Draklive-install seems to detect isw_ddicicbcde_Volume1:3907039744:32:stripe:ok:0:2:0 _raid_devices_raw and then decides it is not isw?? I am not sure how to interpret this. Perhaps someone experienced in the internals of draklive-install can?
Target Milestone: --- => Mageia 5Severity: normal => major
CC: (none) => thierry.vignaudAssignee: bugsquad => tmb
CC: xboxboy.mageia => (none)
Some more thoughts ... On boot: (MGA5a2: uefi usb boot): message [FAILED] Failed to start Software RAID monitoring and management. [root@localhost live]# systemctl status mdmonitor.service mdmonitor.service - Software RAID monitoring and management Loaded: loaded (/usr/lib/systemd/system/mdmonitor.service; enabled) Active: failed (Result: exit-code) since Wed 2014-10-22 10:20:29 EST; 2min 11s ago Process: 887 ExecStart=/usr/sbin/mdadm --monitor --scan -f --pid-file=/run/mdadm/mdadm.pid (code=exited, status=1/FAILURE) Oct 22 10:20:29 localhost systemd[1]: Starting Software RAID monitoring and management... Oct 22 10:20:29 localhost mdadm[887]: mdadm: No mail address or alert command - not monitoring. Oct 22 10:20:29 localhost systemd[1]: mdmonitor.service: control process exited, code=exited status=1 Oct 22 10:20:29 localhost systemd[1]: Failed to start Software RAID monitoring and management. Oct 22 10:20:29 localhost systemd[1]: Unit mdmonitor.service entered failed state. [root@localhost live]# so is mdadm not active from here on in the install ? Fedora-storage-init with no change: if [[ "$dmname" == isw_* ]] && \ ! strstr "$cmdline" noiswmd; then continue fi [root@localhost systemd]# ./fedora-storage-init --testing Setting up Logical Volume Management: No volume groups found Fedora-storage-init with isw filter commented (see discussion in bug 11289) # if [[ "$dmname" == isw_* ]] && \ # ! strstr "$cmdline" noiswmd; then # continue # fi [root@localhost systemd]# ./fedora-storage-init --testing failed to stat() /dev/mapper/isw_ddicicbcde_Volume1 Setting up Logical Volume Management: No volume groups found Then tried to mount md126 (see above) manually [root@localhost dev]# mount /dev/md126p3 -t auto /home/live/tmp/ZZZ [root@localhost dev]# cd /home/live/tmp [root@localhost tmp]# cd ZZZ [root@localhost ZZZ]# ls EFI/ $RECYCLE.BIN/ System Volume Information/ So I could mount a partition on md126 RAID manually ...... UEFI name for the array RAID0 âdriveâ is Volume1â. I have no idea where the name âisw_ddicicbcdâ comes from. Dmraid pulls it in from somewhere (UEFI variables ?) while mdadm does not (see original bug 14330 description above). Given all of the above, MGA5 seems to support recognition and mounting of isw_ arrays once live-booted, but because drakinstall-live <- diskdrake encounters errors, it is impossible to install, either through the classical installer with UEFI enabled (Bug 13471), or live install (errors raised here).
Depends on: (none) => 592
Depends on: 592 => (none)
Depends on: (none) => 14438
Source RPM: (none) => draklive-install
Colin, Thomas, any though about that fedora-storage-init change?
CC: (none) => mageia
@Vladimir: Can you try booting with "noiswmd"? (for livecd it should be "linux noiswmd") @Colin, Thomas: I think we should just revert https://git.fedorahosted.org/cgit/initscripts.git/commit/?id=4782a8f6949384e93aff0b630cf0772b8eddb2ac ("Do not try and activate ISW raidsets, unless noiswmd is passed (#524355)" as we still use dmraid for isw whereas FC switched to mdadm...
Keywords: (none) => NEEDINFO, PATCH
Source RPM: draklive-install => draklive-install, initscripts
CC: (none) => eeeemail
@Thierry: Where/how do I pass this booting parameter? - Never done this before.
If you have grub, just type F3 then select the entry you which to boot, then type "e" then add the option to the end of the option list (the one with root=..., quiet, splash, resume=... If you have grub2, just type "e" directly Note that this is a one time change, it doesn't change the on-disk config, the new option will just be used this one time. If you want it to be always, you then need to add it by running "drakboot --boot" which might be simpler than the above operations.
@Thierry: That worked. In both direct live-install and live boot then install, partitioner worked correctly. Raid array members were not shown but the raid 'disk' was shown, together with partitions. Installation of MGA5 in some free space on this disk went through to the end, but I couldn't boot into the new system because the loader didn't find the uuid of the raid disk because dmraid had not been executed to that point in time. This is just a preliminary advice. More testing, cases, outcomes and reports to follow.
This bug is specifically about live installer crashing in the presence of Intel firmware raid. The live installer provided with Mageia 5 RC Round 5 KDE live 64 bit DVD, booted with grub option 'noiswmd' no longer crashes, but executes normally both in immediate installation and live boot + subsequent installation modes. Tests included installation to an external disk and to the raid disk. While there are issues with booting the installed system, the criteria for solving this bug have been met as the installer no longer crashes in this environment Please advise if it should now be closed.
(In reply to Thierry Vignaud from comment #4) > @Vladimir: > Can you try booting with "noiswmd"? > (for livecd it should be "linux noiswmd") > > @Colin, Thomas: > I think we should just revert > https://git.fedorahosted.org/cgit/initscripts.git/commit/ > ?id=4782a8f6949384e93aff0b630cf0772b8eddb2ac > ("Do not try and activate ISW raidsets, unless noiswmd is passed (#524355)" > > as we still use dmraid for isw whereas FC switched to mdadm... I'll test this now and see why it's not picked up during reboot.
(In reply to Thomas Backlund from comment #9) > I'll test this now and see why it's not picked up during reboot. Ok, reverting that part will not help alone as dracut is also checking in both mdraid and dmraid modules for the "noiswmd" flag. But I dont think we should start patching it out everywhere... Instead I suggest we simply add "noiswmd" to default bootloader flags in mga5 installer (and syslinux/grub2-efi menus on install media) This will work nicely on atleast raid0 and raid1 in legacy mode... The fun part is that when we run in EFI mode, the partitioning crashes in drakx. The reason for this is that the partitioning gets out of sync... because the "p" before partition number goes missing. So if the disk is /dev/mapper/isw_sdakjfkj_data and we add one partition, in legacy mode the partition gets name: /dev/mapper/isw_sdakjfkj_datap1 and in uefi mode: /dev/mapper/isw_sdakjfkj_data1 but drakx will still try to check the one with "p": /dev/mapper/isw_sdakjfkj_datap1 then wont find it and crashes.
So I guess this would do it as an one-time change during install: diff --git a/perl-install/bootloader.pm b/perl-install/bootloader.pm index 75990bf..afd4d78 100644 --- a/perl-install/bootloader.pm +++ b/perl-install/bootloader.pm @@ -1153,6 +1153,7 @@ sub suggest { if_($options{vga_fb}, vga => $options{vga_fb}), #- using framebuffer if_($options{vga_fb} && $options{splash}, append => "splash"), if_($options{quiet}, append => "splash quiet"), + if_($::isInstall, append => "noiswmd"), });
Isn't it b/c we do it only for DOS partitions, not GPT ones? http://svnweb.mageia.org/packages/cauldron/dmraid/current/SOURCES/24_drop_p_for_partition_conditional.patch?revision=389214&view=markup
or we could drop the dmraid patch and adapt drakx...
Actually its the other way around... I added it here: http://svnweb.mageia.org/packages/cauldron/dmraid/current/SPECS/dmraid.spec?r1=190040&r2=192748 But disabled it here: http://svnweb.mageia.org/packages/cauldron/dmraid/current/SPECS/dmraid.spec?r1=522685&r2=549789 when pterjan pointed out it broke the installer...
Note that we're supposed to handle both: http://gitweb.mageia.org/software/drakx/commit/?id=69e0a94455480ee159cee04847e531d5d771f82b Could you attach the crash? just run "bug" on tty2 with an USB key attached once you reach it.
For the record, drakx was patched there: http://gitweb.mageia.org/software/drakx/commit/?id=5c2dacabb3f62574c0d936a118b688de8a5a1f6d http://gitweb.mageia.org/software/drakx/commit/?id=a8f772d35be17d3bb8d08f41e5a20da121813b36
(In reply to Thierry Vignaud from comment #15) > Note that we're supposed to handle both: > http://gitweb.mageia.org/software/drakx/commit/ > ?id=69e0a94455480ee159cee04847e531d5d771f82b > Yeah, but we fail at it. And I now have it confirmed... it's because kpartx does the conditional "p" adding depending of name. If I name the raid set "bohf1", the partitions will become: isw_iddafdjjf_bohf1p1 isw_iddafdjjf_bohf1p2 isw_iddafdjjf_bohf1p3 isw_iddafdjjf_bohf1p4 and installer will finish without a problem. but if I label the raid set "bohf", the partitions will become: isw_iddafdjjf_bohf1 isw_iddafdjjf_bohf2 isw_iddafdjjf_bohf3 isw_iddafdjjf_bohf4 but installer will still search for the"*_bohfp1 - *_bohfp4" and crash So I suggest we re-apply the "24_drop_p_for_partition_conditional.patch" on dmraid to make it treat dos/gpt tables the same way and match kpartx naming too. And adapt drakx accordingly
Created attachment 6201 [details] report.log of partitioning crash (In reply to Thierry Vignaud from comment #15) > Could you attach the crash? > just run "bug" on tty2 with an USB key attached once you reach it.
(In reply to Thomas Backlund from comment #11) > So I guess this would do it as an one-time change during install: > > diff --git a/perl-install/bootloader.pm b/perl-install/bootloader.pm > index 75990bf..afd4d78 100644 > --- a/perl-install/bootloader.pm > +++ b/perl-install/bootloader.pm > @@ -1153,6 +1153,7 @@ sub suggest { > if_($options{vga_fb}, vga => $options{vga_fb}), #- using > framebuffer > if_($options{vga_fb} && $options{splash}, append => > "splash"), > if_($options{quiet}, append => "splash quiet"), > + if_($::isInstall, append => "noiswmd"), > }); This one I committed drakx git as it works as I wanted it to
And disabling p0516 in dracut-038-14.mga5 in updates_testng (which is revert of a revert :)) makes us rely on kpartx to activate dmraid partitions, which makes my dmraid setup bootup nicely im efi/gpt mode.... So currently it works either in legacy mode or in efi/gpt mode :) I could of course make the dracut change conditional depending on efi/gpt mode or not, but that still leaves the installer... but for our sanity I think it would be best if the systems always behave the same way
Closing
Status: NEW => RESOLVEDResolution: (none) => FIXED