We're in the process of migrating Debian for sparc64 from SILO to GRUB
as GRUB upstream is adding support for modern SPARC machines thanks to
the work of Eric Snowberg from Oracle.
In order to make sure GRUB works on all machines supported by the sparc64 port, we need your help to test GRUB on your particular hardware, the older your machine, the better.
[...]
7. Report back to the list and include your hardware and partition setup
# grub-install --skip-fs-probe --force --debug /dev/md0
[...]
grub-install: info: setting the root device to `mduuid/1ae243c1e2445aef777f4d32b671f41c'.
grub-install: warning: File system `ext2' doesn't support embedding. grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: info: will leave the core image on the filesystem.
Segmentation fault
grub-install: warning: File system `ext2' doesn't support embedding. grub-install: error: embedding is not possible, but this is required[...]
for RAID and LVM install.
grub-install: warning: Partition style `sun' doesn't support embedding. grub-install: error: embedding is not possible, but this is required
for RAID and LVM install.
#ifdef GRUB_SETUP_SPARC64
{
grub_partition_t container = root_dev->disk->partition;
if (grub_strstr (container->partmap->name, "gpt"))
bl.gpt_offset = grub_partition_get_start (container);
}
#endif
if (container && grub_strstr (container->partmap->name, "gpt"))actually works & installs on LVM if I put a hint for GRUB into the
Responding to myself:
Some progress:
I put additional informational output between all commands in the suspect area in GRUBs util/setup.c and pinpointed the bug:
#ifdef GRUB_SETUP_SPARC64
{
grub_partition_t container = root_dev->disk->partition;
if (grub_strstr (container->partmap->name, "gpt"))
bl.gpt_offset = grub_partition_get_start (container);
}
#endif
When installing on an md-device - or other special devices - it will never have a partition table, thus "container" is null.
After that, access to struct members is tried without checking if it even exists, leading to the segfault.
if (container && grub_strstr (container->partmap->name, "gpt"))actually works & installs on LVM if I put a hint for GRUB into the device.map pointing to the UUID of the MDRAID.
I'll try to get a patch for that submitted or discussed (I'm new to this and not exactly sure if the change has other implications).
It still won't boot, though. The first "stage" in the 2nd partition block is executed by OBP and something along the lines
of "GRUB FAIL - trap: Illegal Instruction" and on a second attempt "Unaligned Memory Access" was encountered...
7. Report back to the list and include your hardware and partition setup
A bit late to the party, as SILO already appears to be gone (including the repos) and
all install images use GRUB now, but I'm having trouble and wanted to report this - and
maybe get some ideas, in case this is the best address to do so:
I'm in the process of migrating most of our SPARC servers running Solaris 10 & the old Debian
with 32bit SPARC userland to the SPARC64 debport. Some servers running Solaris 11 will follow.
Installing on two SunFire v215 went reasonably well
/- (apart from recurring Kernel Panics with "Unable to handle kernel paging request in mna handler",
most often triggered on boot immediately after the systemd binfmt service tries to start. This seems
to have been mentioned in /2020/04/msg00020.html but never pinpointed and fixed?) -/
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/arch/sparc?id=e5e8b80d352ec999d2bba3ea584f541c83f4ca3f
but I can't seem to be able to configure GRUB on these servers as I did in the past with SILO (a 2-disk
mdraid with mirrored /boot, / and swap). I'm currently stuck with /boot on only one disk and the rest of
the system mirrored as I can't figure out how to install grub for a mirrored /boot partition:
1) Installing to the mirror device always yields a Segmentation Fault. I was unable to get any clue with
my limited gdb experience as to why - (with loaded debug symbols etc.: "Backtrace stopped: previous frame
identical to this frame (corrupt stack?)"):
# grub-install --skip-fs-probe --force --debug /dev/md0
[...]
grub-install: info: setting the root device to `mduuid/1ae243c1e2445aef777f4d32b671f41c'.
grub-install: warning: File system `ext2' doesn't support embedding.
grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: info: will leave the core image on the filesystem.
Segmentation fault
2) Trying to install to the individual disk partitions or the raw disk itself:
grub-install: warning: File system `ext2' doesn't support embedding.[...]
grub-install: error: embedding is not possible, but this is required for RAID and LVM install.
grub-install: warning: Partition style `sun' doesn't support embedding.
grub-install: error: embedding is not possible, but this is required for RAID and LVM install.
Neither different filesystems (ext2, xfs, ...) nor different mdraid metadata formats made any difference.
I can't test other disk labels, as the old OBP doesn't handle GPT AFAIR. Also, GRUB built from the most recent official sources from their git segfaults as well.
Any pointers how to achieve this setup? What can I test or does someone else have a similar setupthink you probably have no choice but to use a single disk for booting. In any case, I think the
working? Am I doing something horribly wrong? I don't think mdraid-mirrored bootdisks should be too
uncommon on this hardware.
From my statements above, I wouldn't expect GRUB with blocklists to work on a software RAID, so I
Thanks and cheers to the community keeping SPARC alive :-)
(mduuid/66bf8873932144cf2d6a74e4a05e67d3) /dev/md0- Strip the lines in /usr/lib/grub/grub-mkconfig_lib between
# otherwise set root as per value in device.map.and
IFS="$old_ifs"to make boot entries that do not try to re-set "root"
Hi Robin!
On 5/15/21 7:25 PM, Robin Cremer wrote:
You can still install SILO from snapshot.debian.org. However, I would recommend building7. Report back to the list and include your hardware and partition setupA bit late to the party, as SILO already appears to be gone (including the repos) and
all install images use GRUB now, but I'm having trouble and wanted to report this - and
maybe get some ideas, in case this is the best address to do so:
the latest version from source as there have been some bugfixes in the meantime.
I'm in the process of migrating most of our SPARC servers running Solaris 10 & the old DebianGood to hear.
with 32bit SPARC userland to the SPARC64 debport. Some servers running Solaris 11 will follow.
Installing on two SunFire v215 went reasonably wellWhat kernel version are you running. There have actually been some fixes in this regard, in particular
/- (apart from recurring Kernel Panics with "Unable to handle kernel paging request in mna handler",
most often triggered on boot immediately after the systemd binfmt service tries to start. This seems
to have been mentioned in /2020/04/msg00020.html but never pinpointed and fixed?) -/
this fix:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/arch/sparc?id=e5e8b80d352ec999d2bba3ea584f541c83f4ca3fPlease keep in mind that GRUB is installed using blocklists on these older machines which means it's not
but I can't seem to be able to configure GRUB on these servers as I did in the past with SILO (a 2-disk
mdraid with mirrored /boot, / and swap). I'm currently stuck with /boot on only one disk and the rest of
the system mirrored as I can't figure out how to install grub for a mirrored /boot partition:
aware of the filesystem being used. The bootloader will just remember the location of the data blocks
and the physical disk. So it has no means to deal with something sophisticated as a software RAID.
Not sure how it worked with SILO which didn't use anything else than blocklists either (which is why
the /boot partition couldn't be too large and the filesystem used couldn't be too fancy).
1) Installing to the mirror device always yields a Segmentation Fault. I was unable to get any clue withAs I said above, I don't expect this to work, really. That doesn't mean that grub-install should crash
my limited gdb experience as to why - (with loaded debug symbols etc.: "Backtrace stopped: previous frame
identical to this frame (corrupt stack?)"):
# grub-install --skip-fs-probe --force --debug /dev/md0
[...]
grub-install: info: setting the root device to `mduuid/1ae243c1e2445aef777f4d32b671f41c'.
grub-install: warning: File system `ext2' doesn't support embedding.
grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: info: will leave the core image on the filesystem.
Segmentation fault
here. I will try to reproduce the issue when I find some time. Ideally, grub-install should just abort
the installation in this case.
But we could also find out how SILO worked in this case.
2) Trying to install to the individual disk partitions or the raw disk itself:Thanks for testing the git version, I was about to ask that.
grub-install: warning: File system `ext2' doesn't support embedding.[...]
grub-install: error: embedding is not possible, but this is required for RAID and LVM install.
grub-install: warning: Partition style `sun' doesn't support embedding.Neither different filesystems (ext2, xfs, ...) nor different mdraid metadata formats made any difference.
grub-install: error: embedding is not possible, but this is required for RAID and LVM install.
I can't test other disk labels, as the old OBP doesn't handle GPT AFAIR.
Also, GRUB built from the most recent official sources from their git segfaults as well.
Any pointers how to achieve this setup? What can I test or does someone else have a similar setupFrom my statements above, I wouldn't expect GRUB with blocklists to work on a software RAID, so I
working? Am I doing something horribly wrong? I don't think mdraid-mirrored bootdisks should be too
uncommon on this hardware.
think you probably have no choice but to use a single disk for booting. In any case, I think the
the GRUB-specific discussion should be moved to the GRUB mailing list as this really concerns the
low-level functionality of GRUB.
Thanks and cheers to the community keeping SPARC alive :-)Sure. Glad it's being useful.
Adrian
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 296 |
Nodes: | 16 (2 / 14) |
Uptime: | 82:57:33 |
Calls: | 6,658 |
Calls today: | 4 |
Files: | 12,203 |
Messages: | 5,333,520 |
Posted today: | 1 |