I'm intending to replace a NAS's Custom Linux with Arch Linux (details at the bottom), of course wishing to preserve all user data and (due to the SSH-only headless access) attempting to be fool-proof since a mistake may require firmware reinstallation (or even brick the device). So instead of running the installation (downloading the appropriate Arch Linux ARM release and probably using the chroot into LiveCD approach) without appropriate preparations, what must I keep in mind? (Please feel free to answer without restriction to Arch Linux) More precisely:
- Do I somehow have to bother with figuring out how a specific device's boot process works (e.g. which parts of the bootloader reside on the flash memory and which ones are on the harddisk) or can I rely on the distribution's installer to handle this correctly?
- How can I determine whether some (possibly proprietary) drivers are used and how can I migrate them into the new setup?
- Is the RAID configuration safe from accidental deletion?
- Is there a way to fake the booting process so I can check for correct installation while the original system remains accessible by simply rebooting? E.g. using
chroot
andkexec
somehow?- What else should I be aware of?
The specific case is that I want to replace the custom Linux from a Buffalo LinkStation Pro Duo (armv5tel architecture, the nas-central description is a bit more helpful here and also provides instructions on how to gain SSH root access) with Arch Linux ARM. But a more general answer may be more helpful for others as well.
yaourt
oremerge
is a real mess. And at some point I may realize that a Kernel module is missing... – Tobias Kienzler Jan 08 '13 at 05:48/var/log/messages
to figure out whysshd
silently fails... – Tobias Kienzler Oct 28 '13 at 15:14/sbin/init
, so you need to adopt thechroot
statement to load systemd correctly. – Bananguin Oct 28 '13 at 21:51/bin/init --system
, but refuses to do so in achroot
environment (and a user instance requires the system being booted with systemd...). Well, I figured outsshd
simply uses the mother-system's syslog, so basically I could justmount -o bind /var/log var/log
(or even just bindmessages
, though IIRC binding files instead of directories is error-prone). Anyway, sounds like I should give gentoo a shot instead... Maybe emerge can be native-fied somehow... – Tobias Kienzler Oct 29 '13 at 08:24pivot_root
and then try something along the lines ofcd /newroot; pivot_root . oldroot; exec bin/init --system >dev/console 2>dev/console <dev/console ;
. It would seem systemd makes it difficult to "safely replace" Linuxes ... – Bananguin Oct 29 '13 at 08:37pivot_root . oldroot
yieldsInvalid argument
(aftermkdir oldroot
), which seems to be connected torootfs
being mounted on/
... – Tobias Kienzler Oct 29 '13 at 09:02