mirror of
https://github.com/kairos-io/immucore.git
synced 2025-09-16 06:58:58 +00:00
Rework uki to pivot at start (#271)
* Rework uki to pivot at start Signed-off-by: Itxaka <itxaka@kairos.io> * Fix secureboot check Signed-off-by: Itxaka <itxaka@kairos.io> * debug Signed-off-by: Itxaka <itxaka@kairos.io> * Change order of initial stuff first mount the barebone stuff and then do the movement Signed-off-by: Itxaka <itxaka@kairos.io> * Drop sleep Signed-off-by: Itxaka <itxaka@kairos.io> --------- Signed-off-by: Itxaka <itxaka@kairos.io>
This commit is contained in:
@@ -242,10 +242,20 @@ func GetHostProcCmdline() string {
|
||||
}
|
||||
|
||||
func DropToEmergencyShell() {
|
||||
if err := syscall.Exec("/bin/bash", []string{"/bin/bash"}, os.Environ()); err != nil {
|
||||
if err := syscall.Exec("/bin/sh", []string{"/bin/sh"}, os.Environ()); err != nil {
|
||||
if err := syscall.Exec("/sysroot/bin/bash", []string{"/sysroot/bin/bash"}, os.Environ()); err != nil {
|
||||
if err := syscall.Exec("/sysroot/bin/sh", []string{"/sysroot/bin/sh"}, os.Environ()); err != nil {
|
||||
env := os.Environ()
|
||||
pathAppend := "/usr/bin:/usr/sbin:/bin:/sbin"
|
||||
// try to extract any existing path from the environment
|
||||
for _, e := range env {
|
||||
splitted := strings.Split(e, "=")
|
||||
if splitted[0] == "PATH" {
|
||||
pathAppend = fmt.Sprintf("%s:%s", pathAppend, splitted[1])
|
||||
}
|
||||
}
|
||||
env = append(env, fmt.Sprintf("PATH=%s", pathAppend))
|
||||
if err := syscall.Exec("/bin/bash", []string{"/bin/bash"}, env); err != nil {
|
||||
if err := syscall.Exec("/bin/sh", []string{"/bin/sh"}, env); err != nil {
|
||||
if err := syscall.Exec("/sysroot/bin/bash", []string{"/sysroot/bin/bash"}, env); err != nil {
|
||||
if err := syscall.Exec("/sysroot/bin/sh", []string{"/sysroot/bin/sh"}, env); err != nil {
|
||||
Log.Fatal().Msg("Could not drop to emergency shell")
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user