Ao alternar outro dispositivo raiz, o initrd faria o pivot_root e, em seguida, desmontaria o ramdisk. Mas initramfs é rootfs: você não pode nem pivot_root rootfs, nem desmontá-lo. Em vez disso, exclua tudo do rootfs para liberar espaço ( find -xdev / -exec rm '{}' ';') ...
E a razão pela qual o Linux não suporta a desmontagem do rootfs inicial:
Rootfs é uma instância especial de ramfs (ou tmpfs, se estiver habilitado), que está sempre presente em sistemas 2.6. Você não pode desmontar rootfs aproximadamente pela mesma razão que não pode matar o processo de inicialização; em vez de ter um código especial para verificar e manipular uma lista vazia, é menor e mais simples para o kernel apenas certificar-se de que certas listas não podem ficar vazias.
O comportamento exato de
switch_root
é explicado aqui:https://github.com/torvalds/linux/blob/v4.17/Documentation/filesystems/ramfs-rootfs-initramfs.txt
E a razão pela qual o Linux não suporta a desmontagem do rootfs inicial: