On Tue, May 14, 2013 at 08:39:26AM -0400, Kenneth R Westerback wrote: > On Tue, May 14, 2013 at 12:16:57PM +0200, Federico Giannici wrote: > > On 05/14/13 11:07, Stefan Sperling wrote: > > >On Sun, May 12, 2013 at 05:27:31PM +0200, giann...@neomedia.it wrote: > > >>I had to go to "/dev" and execute "sh /dev/MAKEDEV" with all the sd0, > > >>sd1, sd2, sd3, sd4 (maybe only sd2 was required), and then restart the > > >>upgrade script. > > > > > >That's somewhat expected. The installer doesn't support softraid yet. > > > > > >Strictly speaking, setups where system partitions (other than /home > > >or other user data partitions) are hosted on softraid should currently > > >be considered experimental. Manual intervention is required for such > > >setups, and that includes creating disk device files that are missing > > >from the ramdisk. > > > > > >Perhaps the install script could easily be fixed to create the necessary > > >device files. But it needs a non-trivial amount of work to support > > >installing to a softraid volume and also upgrading them (I've tried to > > >write support for that a while back, it's not very simple). Also, not > > >many architectures can currently boot from softraid, and I'm not sure > > >whether all architectures can already host the root filesystem on it. > > > > > >BTW, I found that on sparc64, the ramdisk is so starved for inodes that > > >creating device nodes for one or two additional disks will cause problems > > >while downloading the sets. Fix is to remove unneeded devices from the /dev > > >directory as well as creating the needed ones. > > > > Apart from the MAKEDEV of the missing disk devices, the upgrade > > script apparently worked correctly in two amd64 PCs with softraid 1 > > boot. What other things I have to pay attention to, and what else > > could go wrong? > > > > I'm asking this because I was thinking to do other amd64 machines > > with softraid 1 boot. But maybe it's still better to wait before > > doing this? > > > > Thanks. > > > > -- > > ___________________________________________________ > > __ > > |- giann...@neomedia.it > > |ederico Giannici http://www.neomedia.it > > ___________________________________________________ > > > > The upgrade process scans fstab and creates the devices needed to > mount any ffs filesystems. So I imagine sd4 would have been created > but constituent devices that don't appear in fstab or have no ffs > filesystems specified will not be created. > > In the new RAID world it needs another check. Probably the easiest > is to create all devices up to the highest disk encountered. This > does, as pointed out, have some implications for inode starved > install media on some architectures. > > Doing disklabel on all devices and looking for RAID partitions might > be possible too. Which would minimize inode starvation. > > Deep thought. Hmmm. > > .... Ken >
Something like the (untested) diff below might work. .... Ken Index: install.sub =================================================================== RCS file: /cvs/src/distrib/miniroot/install.sub,v retrieving revision 1.675 diff -u -p -r1.675 install.sub --- install.sub 25 Mar 2013 21:35:45 -0000 1.675 +++ install.sub 14 May 2013 13:27:22 -0000 @@ -1725,6 +1725,16 @@ getdevname() { fi } +# Scan disks for RAID partitions and create required devices so +# they can be assembled if required. +check_raid() { + local _dk + + for _dk; do + disklabel $_dk | grep " ^[a-p]: " | grep -wq RAID && makedev $_dk + done +} + # Preen all filesystems in /etc/fstab that have a /sbin/fsck_XXX and a # fs_passno > 0, showing individual results, but skipping $ROOTDEV. This was # already fsck'ed successfully. Index: upgrade.sh =================================================================== RCS file: /cvs/src/distrib/miniroot/upgrade.sh,v retrieving revision 1.72 diff -u -p -r1.72 upgrade.sh --- upgrade.sh 21 Apr 2012 10:17:26 -0000 1.72 +++ upgrade.sh 14 May 2013 13:06:01 -0000 @@ -77,6 +77,10 @@ startftplist # Create fstab for use during upgrade. munge_fstab +# Check for disks with RAID partitions and create required devices +# for assembling them. +check_raid $(get_dkdevs) + # fsck -p non-root filesystems in /etc/fstab. check_fs