Mike Gilbert posted on Fri, 02 Aug 2013 10:32:10 -0400 as excerpted: > On Fri, Aug 2, 2013 at 8:06 AM, Duncan <1i5t5.dun...@cox.net> wrote: >> Steven J. Long posted... >>> you only really need an initramfs if [...] >> >> Or, unfortunately, for root on mult-device btrfs, since the usual >> kernel commandline rootflags=device=/dev/whatever doesn't seem to work >> for some reason. >> > Passing rootflags=device= is a little fragile anyway, since it depends > on the kernel detecting your devices in a certain order. Having a > multi-device btrfs root without an initramfs is asking for trouble.
Well, yes and no. Pre-btrfs I used kernel commandline assembled mdraid with initr*less root on top of it for years. As I posted to the btrfs list when someone made the same argument, on my hardware anyway, /dev/sd* bring-up order is known stable for a particular kernel as long as I don't go changing the physical hardware or plugging. and if a new kernel ever changes that or I change the physical hardware, I can either drop to grub's commandline (grub2 here, but grub1 works too, with a bit more difficulty) and scan, then enter the new devices I need, or boot the old kernel and reconfigure as necessary. IOW, depending on the existing stable scan order with a known and demonstrated ability to adapt to changing scan order if it happens, is definitely no MORE fragile or asking for trouble (and arguably rather less so), than running and dynamically adapting to pre-release brokenness in for example the live-git kernels I'm running most of the time, or the live-git openrc-9999 I run, because I've found it easier to troubleshoot a couple commits at a time while using the additional information git whatchanged provides, than to effectively operate blind, with far less information and far more commits stacked up that the problem could be in when I DO find one if I simply follow regular releases. > If you just want a minimal initramfs that calls btrfs scan on boot > without hacking the crap out of dracut, feel free to use my little > homegrown project. Just adjust the paths, make sure your busybox is > static, and you should be good to go. > > https://bitbucket.org/floppym/initramfs/src Thanks, but... I don't even have busybox installed[1] nor am I really familiar with it, tho I've probably used it in embedded context a few times without knowing it. So hacking on dracut probably /is/ easier for me, here, especially since I already have that working. But I've personally found replies nominally aimed at someone else useful enough often enough, that I believe chances are quite high someone else reading will find it useful, and indeed, I myself may find it instructional if I ever decide to hack up my own initr* lite, as I've thought about doing, so thanks, indeed. =:^) --- [1] Busybox not installed: Back in 2004 when I setup my first gentoo system, there was some bug that prevented busybox compilation, so I simply package.provided it and continued, thinking I'd get back to that later. I did try it a couple times later without success, by that time I realized I didn't really need it since I use an operation system snapshot partition as both an emergency recovery method and backup and thus don't really need an additional tool such as busybox, so I really didn't have a lot of motivation to fix the problem, and probably last tried building busybox 7+ years ago, now. These days of course I have an entirely empty @system, negating the entries in the cascading profile one by one and adding entries to one of the sets listed in world-sets instead where necessary, triggered as an effort to make portage's parallel build process more efficient since it serializes @system package and dependencies builds (and an empty @system really does help with that). So for all I know busybox isn't even in the default @system any more, but in any case I no longer have to package.provide it. =:^) -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman