| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
In default case, use SLAAC auto configuration (NM's default
IPV6_AUTOCONF=yes).
|
|
|
|
|
|
|
| |
We need to pass dhcp lease file to NM's dhclient also in case of
kickstart installs. For non-kickstart case, this is done in dracut,
modules.d/45ifcfg/write-ifcfg.sh.
See dracut's commit 66666c670a462548df4ea4c8069d54b8c309ecf4
|
| |
|
| |
|
|
|
|
|
|
| |
In dracut we set ONBOOT=yes for --activate so that NM activates
the device upon its start, in anaconda we set the real value
of ONBOOT.
|
|
|
|
|
| |
anaconda-dracut always passes a path to dmsquash-live-root so its
checkisomd5 never runs (it needs a block device).
|
| |
|
|
|
|
|
|
|
|
|
| |
move doesn't work because /run/ is a shared filesystem. So do as
systemd suggests, mark the filesystem as private. We don't know of any
reason in anaconda for the filesystem to be shared anyway.
This hack can go away if/when the kernel ever allows moving mounts
within a shared filesystem.
|
| |
|
|
|
|
|
| |
We need these after the pivot and we can't get to them without copying
them into /run ourselves.
|
|
|
|
|
|
|
|
|
|
| |
This is kind of silly, since IPV6_AUTOCONF=yes is the default (according
to sysconfig.txt from 'initscripts'). But it might not always be the
default, so let's just make sure we do what the user wants.
Also, it's not our job to set policy; if DHCPV6C=yes should disable
IPV6_AUTOCONF that's up to initscripts/NetworkManager. So leave it alone
otherwise.
|
|
|
|
| |
It turns out IPV6INIT defaults to "no", so we need to set this.
|
|
|
|
|
| |
A bunch of these comments don't apply anymore - update them so they
reflect reality
|
|
|
|
| |
Systemd handles the tricky bits of logging for us now. Yay!
|
|
|
|
|
|
|
|
|
|
| |
the splitsep function was buggy before, but it was fixed in dracut 019
so we don't need these workarounds anymore.
See upstream dracut commit f7cadaa843498c4b986f8a030fab39002ad108b6.
Related: 844c0c156ed2f27920257d86690f3017727f398e
Related: 700e985082b03abcbd3009de81885b8fbf72818b
|
|
|
|
|
|
|
| |
rd.neednet is no longer in use by dracut. This is how you tell dracut
"definitely bring up the network interfaces, dammit" now.
Related: 861d6e3fc9d9cd3f719f7e2dbbff31244dc80142
|
| |
|
| |
|
|
|
|
| |
Argh I dropped a colon somehow. Whoops.
|
|
|
|
|
|
|
| |
Some info about the variables that dracut exports and uses.
This helps clarify the $netroot situation in anaconda-lib.sh a bit.
Bonus: add some links to Further Reading.
|
|
|
|
| |
You can't use 'eth0' with ifname=<name>:<MAC>. Use 'ksdev0' instead.
|
|
|
|
| |
We don't handle upgrades in anaconda anymore, so this isn't necessary.
|
|
|
|
|
| |
Dracut now passes $netif as the first argument to the script rather than
setting it in the scripts environment. So we need to do netif=$1.
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we parse "ip=... gw=..." and emit a new "ip=..." line, we end up with
multiple conflicting ip= args for that device. This makes dracut panic
with:
"Sorry, 'ip=$p' does not make sense for multiple interface
configurations"
Luckily dracut handles old-style anaconda ip=... arguments now, so we
can just drop this block of code and fix the problem. Yay!
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since each hook is (basically) a separate shell, we need to import
anaconda-lib.sh at least once per hook.
Since anaconda-modprobe.sh runs before the other scripts, this covers
the whole hook.
Still, it's a good idea to leave the imports in place so future
maintainers know what functions come from where; clean up the existing
import in repo-genrules.sh to actually provide this info.
|
|
|
|
|
|
| |
'rd.neednet' is no longer used by dracut. Instead it checks for the
presence of /tmp/net.ifaces or $netroot. So, if we need network (and
$netroot isn't set), make sure /tmp/net.ifaces exists.
|
|
|
|
|
|
|
|
|
| |
save_netinfo moved into upstream dracut's net-lib.sh, so we don't need
our own version here.
The only place we currently use save_netinfo is in the initqueue/online
hook, which will always have sourced net-lib.sh first, so we don't need
to worry about changing anything else.
|
|
|
|
|
|
| |
a) cmdline happens before we start messing with devices, so we don't
really need to do modprobe here,
b) we don't care if the user doesn't have a floppy drive, that's OK
|
|
|
|
|
|
|
|
| |
Current dracut crashes (intentionally!) if you use 'ip=' arguments with
'BOOTIF='.
Until that's fixed upstream, add a temporary workaround that skips
writing 'ip=' arguments if 'BOOTIF' is present.
|
|
|
|
|
| |
Should be no actual behavior changes here, mostly just adding a bunch of
comments and clarifying the flow a bit.
|
|
|
|
|
| |
Add a README containing some notes that should cover a lot of the common
questions people ask about how this thing works.
|
|
|
|
|
|
| |
We're going to be playing whack-a-mole here for a bit. Because each
stage of dracut is now a new shell we don't have access to things
sourced in previous stages.
|
|
|
|
|
|
|
|
| |
commit c1da5cd was originally part of an attempt to fix something else,
but the other patch (which introduced proc_cmdline) was rejected on
review.
This adds proc_cmdline so init_logger() won't traceback.
|
|
|
|
|
|
| |
For some reason right now this library is not being imported at the time
repo-genrules.sh is being ran, so add a stub that forces the import
since we need the $rulesfile variable.
|
|
|
|
|
|
|
| |
Basename got removed from dracut land. This was our only use of it so
use shell built ins to accomplish the same thing. Sadly you cannot
strip both prefix and suffix at the same time, so take a two step
approach.
|
|
|
|
|
|
| |
Loader used to handle this, but it was lost when we moved to dracut.
This adds back the functionality to set cmdline, text, or graphical based
on kickstart contents.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Originally, parsing inst.ks.{sendmac,sendsn} happened in
parse-anaconda-kickstart.sh. But it turned out that sendmac needed to
happen after the modules were loaded, so commit 4fcc157 tried to fix
this by making it a function, and using initqueue to run that function
in the 'initqueue/settled' hook.
Well, it turns out initqueue doesn't like adding jobs that are function
names - the job ends up empty and nothing happens.
So instead, let's handle these two arguments directly in a script that
runs in initqueue/settled.
|
|
|
|
|
|
|
|
|
| |
The kickstart parsing that happens in dracut is the "early" parsing - it
doesn't run %pre and it might not be connected to the network, so it's
possible we'll have %include lines that aren't yet valid.
KickstartParser has a 'missingIncludeIsFatal' attribute for this reason.
Set it to False (like loader did) to turn off these errors.
|
|
|
|
| |
..I mean, let's not beat around the bush, here.
|
|
|
|
|
|
| |
Make "readfile" more clear about its intent (read one line, discard
errors). Rename it to "readsysfile" just so nobody gets confused about
what it's for.
|
|
|
|
| |
Emit logging messages when 'rd.debug' or 'rd.info' are passed.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We weren't handling the "empty $ksdev" case, which (as it turns out) is
legit for 'ks=cdrom'.
Note that the old option was "ks=cdrom[:<path>]". Rather than trying
to cleverly detect the difference between a device and path, we're
making it "cdrom:<dev>:<path>", which matches the "hd:.." argument.
Thus if you want to specify a path for the kickstart but not the CDROM
device, do: ks=cdrom::<path>
<path> defaults to '/ks.cfg', as always.
|
|
|
|
|
|
|
| |
This adds another chunk to the anaconda-generator that will figure out
what services go where. In this case, we enable the sshd service when
inst.sshd or sshd is found as a command line option, or if we're on
s390x (because the console sucks there).
|
|
|
|
|
|
|
|
|
|
|
| |
For some unknown reason, nfs-root installs will hang after a couple of
minutes if you're using nfs4. This doesn't happen with nfs3, so force
nfs3 by default.
This breaks the normal fallback to nfs2, so if nfs3 doesn't work you'll
need to change your repo arg to something like 'nfs:vers=2:SERVER:PATH'.
I'm told that nfs2-only servers should be pretty rare at this point, so
I think this is a reasonable requirement.
|
|
|
|
|
|
|
|
|
|
| |
Make anaconda-netroot.sh attempt to fetch updates.img and product.img
from $URL/images/{updates,product}.img, like loader used to do.
It will emit some "404 not found" error messages for the normal case
(i.e. when the images don't exist) but a) the messages should scroll
offscreen quickly and b) we don't really have time to fix that right
now.
|
|
|
|
|
|
|
| |
If our methodstr is 'cdrom' then anaconda expects the CD to be mounted
at /mnt/install/source. /mnt/install is a symlink to /run/install, so
making /run/install/source a symlink to the actual mountpoint makes
anaconda able to find the CDROM.
|
|
|
|
|
|
| |
This can actually cause some problems because "getarg nameserver" will
return "1" for the argument "nameserver=", which means you end up with
DNS1=1 in your ifcfg, which is obviously wrong.
|
|
|
|
|
|
|
|
|
| |
The replacement hack for splitsep wasn't detecting the case where the
repo is just "cdrom" - no ":PATH" at the end - and trying to remove the
"cdrom:" from the front of "cdrom", which doesn't work.
In that case, we'll end up with $rest = $repo, so check for that, and
set rest="".
|
|
|
|
|
| |
parse-kickstart needs to check the device to see if it's a MAC and do
the right thing when it is.
|