Bug 785815
Summary: | anaconda requires root= kernel argument | |||
---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Kamil Páral <kparal> | |
Component: | anaconda | Assignee: | Will Woods <wwoods> | |
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | |
Severity: | unspecified | Docs Contact: | ||
Priority: | unspecified | |||
Version: | rawhide | CC: | abrt-devel-list, aj.werkman, alex, anaconda-maint-list, aros, awilliam, belegdol, berrange, bob, bugs.michael, crobinso, ctatman, davej, dracut-maint, g.kaviyarasu, harald, horsley1953, hoyang, jburke, jforbes, jonathan, jreznik, jstancek, kchamart, khong, lijli, luis.salmeron, mbanas, me, mgahagan, mgoldboi, mishu, moli, nathanael, orion, pbonzini, pcfe, pedemonte, peter.hutterer, psimerda, redhat, rmarko, rrottmann, samuel-rhbugs, sgraf, tilmann, vanmeeuwen+fedora, virt-maint, vondruch, wwoods | |
Target Milestone: | --- | Keywords: | TestBlocker | |
Target Release: | --- | |||
Hardware: | Unspecified | |||
OS: | Unspecified | |||
Whiteboard: | RejectedNTH | |||
Fixed In Version: | Doc Type: | Bug Fix | ||
Doc Text: | Story Points: | --- | ||
Clone Of: | ||||
: | 795519 (view as bug list) | Environment: | ||
Last Closed: | 2012-03-27 20:33:23 UTC | Type: | --- | |
Regression: | --- | Mount Type: | --- | |
Documentation: | --- | CRM: | ||
Verified Versions: | Category: | --- | ||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
Cloudforms Team: | --- | Target Upstream Version: | ||
Embargoed: | ||||
Bug Depends On: | ||||
Bug Blocks: | 494832, 798804 |
Description
Kamil Páral
2012-01-30 16:55:33 UTC
maybe "--extra-args" needs "root=...." now.. I don't know what anaconda is expecting here for the latest install images. I know, they have changed to use dracut now, which implies, that "root=..." has to be specified somewhere to let dracut know what to boot and what to mount. E.g. "root=live:..." or something else.. Please ask the anaconda team here. Reassigning to anaconda team for advice. Also happens for F17 Alpha TC1: http://dl.fedoraproject.org/pub/alt/stage/17-Alpha.TC1 btw, the dracut image for the installer might want the "root=..." hardcoded and stored in /etc/cmdline.d/anaconda.conf in the initramfs image. you can inject files easily with dracut --include <pathto>/anaconda.conf /etc/cmdline.d/anaconda.conf on creation. This command works: $ virt-install --name Foo --ram 1024 --disk /dev/vg/Foo,size=10 --location http://dl.fedoraproject.org/pub/alt/stage/17-Alpha.TC1/Fedora/Fedora/i386/os/ --arch=i386 --extra-args "console=ttyS0 serial root=live:http://dl.fedoraproject.org/pub/alt/stage/17-Alpha.TC1/Fedora/Fedora/i386/os/LiveOS/squashfs.img" --nographics But it seems to me quite weird that I have to specify a root=... kernel option that I didn't have to for F16 composes. Either virt-install should do that for me, or anaconda should create such an image that this kernel option is not needed. I think virt-install could provide this parameter based on the repository information, this would be a nice feature. I don't think hardcoding the path to anaconda would be wise, among other things we would have to create more images depending on used media (e.g. there's something like root=CDLABEL:<blabla> on DVD (not sure about the right syntax)). Changing component to virt-install. If it detects Fedora installation URL and fetches squashfs.img or just appends a correct URL to the kernel arguments, it will make system administrators life much easier. As I learned that there is no bug in the compose process, just one more inconvenience popped up, I'm removing the release blocker and propose it as a nice-to-have blocker. Does this change mean that tools like cobbler will also need to be updated to manually specify a root= argument for F17 PXE installs? And presumably this requires tools to be able to differentiate between and F16 tree and an F17 tree so as not to append the root= argument on old tree (which presumably would cause issues)? Just for my own understanding, can someone quickly summarize - what root= does - how anaconda worked before without root= - why in technical terms root= is needed now When virt-install does url installs, we pass a method=<installurl> command line option to anaconda. Maybe if anaconda sees method= but doesn't see root=, it can default to pulling the squashfs image from the known location relative to the method= . (In reply to comment #9) > Does this change mean that tools like cobbler will also need to be updated to > manually specify a root= argument for F17 PXE installs? Probably not, if cobbler is using one of repo=/method=/stage2=. See below. > Just for my own understanding, can someone quickly summarize > > - what root= does You're kidding, right? It tells the kernel/initramfs where the root filesystem is. Check out your /etc/{grub.conf,grub2.cfg}. For anaconda, the root device is a live filesystem image: images/install.img. (For the moment it resides at LiveOS/squashfs.img but that will probably change soon - see bug 782108) > - how anaconda worked before without root= By inferring from anaconda-specific boot args, or (if that failed) looking for appropriate media: * If you booted with repo=XXX, the root image was assumed to be at $repo/images/install.img. * method= is a deprecated synonym for repo=. * stage2=XXX specified the exact location of the runtime image, so it's almost identical to root=XXX, except that it's a weird non-standard version of it. * If none of these were specified, it would mount every CD it found in the system and look for one that had some special files that indicated it was installer media. > - why in technical terms root= is needed now It's always been needed, but we've been filling it in for you. Which we will continue to do for the cases listed above. > When virt-install does url installs, we pass a method=<installurl> command line > option to anaconda. Maybe if anaconda sees method= but doesn't see root=, it > can default to pulling the squashfs image from the known location relative to > the method= . As explained above, that's what it usually does. The dracut code that handles all the anaconda-specific arguments hasn't landed yet. It'll be there soon. Hi Will, thanks for the answers. > > Just for my own understanding, can someone quickly summarize > > > > - what root= does > > You're kidding, right? It tells the kernel/initramfs where the root filesystem > is. Check out your /etc/{grub.conf,grub2.cfg}. Hey, cut me some slack, I've never seen a grub.conf with root=live:<http://some/url/path> as shown in comment #6. Just wanted to make sure I wasn't missing something obvious. > > When virt-install does url installs, we pass a method=<installurl> command line > > option to anaconda. Maybe if anaconda sees method= but doesn't see root=, it > > can default to pulling the squashfs image from the known location relative to > > the method= . > > As explained above, that's what it usually does. > > The dracut code that handles all the anaconda-specific arguments hasn't landed > yet. It'll be there soon. Great, so this should just start working again when this code lands in dracut. I assume this is targeted for f17? Reassigning to dracut based on that assumption, someone correct me if I'm mistaken. *** Bug 787803 has been marked as a duplicate of this bug. *** Discussed at 2012-02-10 NTH review meeting. Agreed this is rejected as NTH, we see no convincing rationale as to why it's worth accepting the risk of poking this during a freeze. If someone can come up with a good reason to do so, please re-propose. Note we're working under the assumption this is not a complete roadblock for AutoQA (RATS). If it is, please say so, and re-propose; it may change the discussion. So far we're assuming all that's needed for things that use virt-install is a bit more care. -- Fedora Bugzappers volunteer triage team https://fedoraproject.org/wiki/BugZappers What root= parameter is needed to boot the TC2 DVD x86_64 image via GRUB2 vmlinuz+initrd? I've added just the usual repo=hd:/dev/sda8:/17/64 parameter, but kernel crashes with "no or empty root". I'm using: root=live:http://dl.fedoraproject.org/pub/alt/stage/17-Alpha.RC2/Fedora/x86_64/os/LiveOS/squashfs.img Unusual, weird, but that works at least. :) Since it has taken 8 minutes to download from that location at low speed, I've mirrored that file locally. The file is inside the DVD image, btw. There must be a way to point at the local copy of the file in the root= parameter. I believe this is a temporary problem, anaconda should find out the root image automatically. Quoting Will Woods:
> The dracut code that handles all the anaconda-specific arguments
> hasn't landed yet. It'll be there soon.
Adding TestBlocker as this blocks the test-suite runs for ABRT, would be nice to have this fixed asap. wwoods, what's the ETA for this? Parts of it are in the anaconda 'noloader' branch. Test images that handle 'repo={http,ftp,nfs,hd,cdrom}' should be available within a week. 'root=live:{http,https,ftp}' is available as a temporary workaround. For repo=hd... you could probably put the squashfs.img in /LiveOS/squashfs.img on the device and boot with "root=live:/dev/XXX".. but it won't use the packages on the disk unless you set up an appropriate repo in the UI. *** Bug 798566 has been marked as a duplicate of this bug. *** *** Bug 798823 has been marked as a duplicate of this bug. *** Is somebody still believe that this bug is due to "virt-install"? Could we change the issue name please? It's reported against dracut, but I changed the summary. *** Bug 799850 has been marked as a duplicate of this bug. *** So today I used preupgrade to attempt a F16->F17 upgrade. It failed to boot because of this bug. This is a test laptop so doesn't have a fixed internet connection, so I assume adding root=live:http://... wouldn't really work. I've tried root=hd:UUID=xxx.....:/squashfs.img which didn't work with an error about not knowing how to deal with it I've tried root=live:/dev/sda2/squashfs.img and root=live:/dev/sda2:squashfs.img which dropped me to a dracut shell. How do I fix this? wwoods: you said 02-21 "Test images that handle 'repo={http,ftp,nfs,hd,cdrom}' should be available within a week", can we get an update? Where are we on this bug? It's probably not quite a release blocker but it would be very nice if this could be 'fixed' so most cases don't have to manually specify a root= parameter (esp. PXE). -- Fedora Bugzappers volunteer triage team https://fedoraproject.org/wiki/BugZappers *** Bug 797507 has been marked as a duplicate of this bug. *** Not to mention that it would sure be nice if I could do a hard disk install (repo=hd) by the time the beta is released (or at least by final anyway). Trying to build test images today. Related bug 802041. Related bug 802042. Should the noloader change which has just landed fix this, Will? -- Fedora Bugzappers volunteer triage team https://fedoraproject.org/wiki/BugZappers Yes. We're doing some smoke-test builds now; if nothing horrific happens we're hoping to merge this into f17-branch for TC2. I can confirm, that this bug is fixed in Beta-TC2. does this mean that using pre-upgrade at this point in time would create a bootable system that could then continue to upgrade? Hmm, I'm still getting the error with my cobbler vm install and TC2. hit this error after preupgrade f15 to F17 preupgrade will not be using 17.13 (noloader). You can only be sure you're getting 17.13 if you're running from an actual Beta TC2 image. preupgrade, and other ways of using the copy of the installer that's located on the mirrors, will be using an older anaconda, because 17.13 has not yet been pushed to stable. -- Fedora Bugzappers volunteer triage team https://fedoraproject.org/wiki/BugZappers *** Bug 806597 has been marked as a duplicate of this bug. *** Might I suggest this bug is a duplicate of https://bugzilla.redhat.com/show_bug.cgi?id=800205 which has been marked as a blocker? Nathanael: no, not really. =) It's the other way around. Except we intentionally kept 800205 around as a 'special case', on the basis that if the general bug - this one - was not fixed, we could still work around it in preupgrade, hence resolving 800205 without resolving this bug. I think we can mark this as fixed, now 17.14 is stable. preupgrade is still broken due to a different bug, but it's not hitting this any more, and I don't think other paths are either. -- Fedora Bugzappers volunteer triage team https://fedoraproject.org/wiki/BugZappers (In reply to comment #35) So how should we use root= parameter when using syslinux (usb flash drive)/pxe? dracut Warning: dracut: FATAL: Don't know how to handle 'root=hd:/LiveOS/squashfs.img' Refusing to continue "hd:..." notation is anaconda-specific. You can't use that with "root=..." Use "repo=" or "stage2=", just like you have for every previous release. (If you were using "method=", that's just an alias for "repo=".) repo=hd:DEVICE:PATH DEVICE is something like "sda2" or "LABEL=Live" or "UUID=..." PATH is the path to the directory that contains the ".treeinfo" file If you really want to use root= (for some reason), you'd do: root=live:DEVICE The image must be located at /LiveOS/squashfs.img on that device. If anyone stumbles upon this bug report, here's another working tested solution: label linux menu label Install or upgrade ^Fedora kernel /LiveOS/vmlinuz append initrd=/LiveOS/initrd.img root=live:UUID=AAAA-BBBB-CCCC-DDDD-EEEE-FFFF rootfstype=auto ro liveimg You can find out the partition UUID by running `blkid`. Well, with cobbler/koan for quite a while now one has a boot line like: linux /boot/vmlinuz root=UUID=61d65bfe-ad38-4495-9525-ed66f5cb3c65 ro rd.md=0 rd.lvm=0 rd.dm=0 KEYTABLE=us SYSFONT=latarcyrheb-sun16 rd.luks=0 LANG=en_US.UTF-8 crashkernel=64M no_console_suspend ks=http://cobbler.cora.nwra.com/cblr/svc/op/ks/system/orca ksdevice=link kssendmac lang= text Now however it ends up booting the system instead of doing the install. If I remove the root= line I then see: dracut: acaconda fetching installer from http dracut Warning: can't find installer mainimage path in .treeinfo The kickstart has: url --url=http://fedora.cora.nwra.com/development/17/i386/os I don't see any requests for the .treeinfo on my server. Happy to file a new bug at this point if that would be better as this just relates to kickstart handling. (In reply to comment #47) > Now however it ends up booting the system instead of doing the install. If I > remove the root= line I then see: > > dracut: acaconda fetching installer from http > dracut Warning: can't find installer mainimage path in .treeinfo > > Happy to file a new bug at this point if that would be better as this just > relates to kickstart handling. Already exists. See bug #810005. |