I'm trying to migrate to systemd. I've installed syslinux, and it's working in that I can use it to boot using the old method. In my /boot/syslinux/syslinux.cfg file, my first label block reads
MENU LABEL Arch Linux
APPEND root=/dev/sda3 ro
I know sda3 is the right partition because I can boot into it using the old method. When I look at the actual command it uses to boot when I try to use systemd, it doesn't actually append the "init=/usr/ ...." stuff at the end. When I type it in manually it gives me a kernel panic. I'm stumped. It's worked once because when I ran
it showed systemd. But, that time I had to type something in while booting, but I forget what it was.
I try to run
.linux ../vmlinux-linux root=/dev/sda3 ro init//usr/lib/systemd/systemd
and it shows
Loading ../vmlinuz-linux ......ready.
Probing EDD (edd=off to disable) ... ok
early console in decompress_kernel
Decompressing Linux... Parsing ELF... done.
Booting the kernel.
at this point at the beginning of each line is [ 0.####] where the #### are some numbers. Then it says
tsc: Fast TSC calibration failed
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
and then it has some other stuff that I don't think is useful.
There are probably several issues here - but the first is that init doesn't get appended because you don't have it on the APPEND line.
Next, do you have systemd-sysvcompat installed? You shoud. If you do, you should not need to include init in your boot loader.
As for the other stuff that you don't think is useful - it may well be. Post the actual output.
It does the same thing when I have init on the append line. It also does the same thing when I type it in manually in the menu. I can't install systemd-sysvcompat because it says it's in conflict with sysvinit. When I try to remove sysvinit, it says there's an error because initscripts requires sysvinit.
yeah, wait until you get migrated to install systemd-sysvcompat
if you really typed "init//usr/lib/systemd/systemd", that would be a problem but the real problem is not including the initramfs. Fix your syslinux.cfg and try again.
Last edited by Scimmia (2013-06-23 02:05:47)
er, yea, sorry, i typed "init=/usr/lib/systemd/systemd"
what do you mean wait to get migrated?
... I'm trying to install systemd because I need to do it before I can remove /bin and /sbin, and I need to do that to upgrade my system using packman. I've followed the instructions here
exactly, but it keeps saying the kernel is out of sync, it has a kernel panic.
Scimmia is, of course, right. I completely missed the absence of INITRD. Nevermind the sysvcompat stuff (for now). In think you've confused INITRD with init. See the syslinux page for how the config should look.
I just mean don't install systemd-sysvcompat until you have everything set up and running with systemd.
As I said, you have no initrd specified. Without that the kernel can't mount root.
Last edited by Scimmia (2013-06-23 02:14:07)
How do I specify an initrd file to use systemd? When I try
it says it could not find the ramdisk image.
... should I just be using Grub2 instead?
In think you've confused INITRD with init.
Looks like Trilby nailed it.
cupcake1234, init= and INITRD are two completely different entries. INITRD specifies the ram drive image to load, init= is the init system. You add init= to the end of the APPEND line, INITRD does not change. See the syslinux Wiki page to see what it should look like.
I tried adding INITRD as it is on the syslinux wiki page, and I got the same kernel panic message.
post your syslinux.cfg
well, maybe i just typed it in wrong the first time, but with it in the .cfg file, it worked. thanks guys!