Support importing a kernel from a chroot directory

This commit is contained in:
Gregory Kurtzer
2021-02-04 18:06:46 -08:00
parent e4ec4b0ffd
commit 30c6b64413
3 changed files with 6 additions and 4 deletions

View File

@@ -12,7 +12,7 @@ import (
func CobraRunE(cmd *cobra.Command, args []string) error {
for _, arg := range args {
output, err := kernel.Build(arg)
output, err := kernel.Build(arg, OptRoot)
if err != nil {
wwlog.Printf(wwlog.ERROR, "Failed building kernel: %s\n", err)
os.Exit(1)

View File

@@ -16,12 +16,14 @@ var (
BuildAll bool
ByNode bool
SetDefault bool
OptRoot string
)
func init() {
baseCmd.PersistentFlags().BoolVarP(&BuildAll, "all", "a", false, "Build all overlays (runtime and system)")
baseCmd.PersistentFlags().BoolVarP(&ByNode, "node", "n", false, "Build overlay for a particular node(s)")
baseCmd.PersistentFlags().BoolVar(&SetDefault, "setdefault", false, "Set this kernel for the default profile")
baseCmd.PersistentFlags().StringVarP(&OptRoot, "root", "r", "/", "Import kernel from root (chroot) directory")
}
// GetRootCommand returns the root cobra.Command for the application.

View File

@@ -69,10 +69,10 @@ func ListKernels() ([]string, error) {
return ret, nil
}
func Build(kernelVersion string) (string, error) {
func Build(kernelVersion string, root string) (string, error) {
kernelImage := "/boot/vmlinuz-" + kernelVersion
kernelDrivers := "/lib/modules/" + kernelVersion
kernelImage := path.Join(root, "/boot/vmlinuz-"+kernelVersion)
kernelDrivers := path.Join(root, "/lib/modules/"+kernelVersion)
kernelDestination := KernelImage(kernelVersion)
driversDestination := KmodsImage(kernelVersion)