github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/examples/orbiter/static/virtualbox/machine.sh (about)

     1  #!/usr/bin/env bash
     2  
     3  machineName=$1
     4  kickstartFile=$2
     5  publicKeyPath=$3
     6  tmpFolder=$4
     7  image=$5
     8  
     9  mkdir -p ${tmpFolder}
    10  
    11  baseFolder=${tmpFolder}/vms
    12  mkdir -p ${baseFolder}
    13  
    14  ########################################################################################################################
    15  # VM
    16  ########################################################################################################################
    17  VBoxManage createvm --name ${machineName} --ostype "RedHat_64" --register --basefolder ${baseFolder}
    18  VBoxManage modifyvm ${machineName} \
    19      --cpus 2 \
    20      --ioapic on \
    21      --memory 2048 \
    22      --vram 20 \
    23      --nic1 bridged \
    24      --nictype1 82540EM \
    25      --audioout off \
    26      --graphicscontroller vmsvga \
    27      --bridgeadapter1 en0
    28  
    29  machineFolder=${baseFolder}/${machineName}
    30  diskPath=${machineFolder}/DISK.vdi
    31  controllerNameDisk="SATAController"
    32  controllerNameImage="IDEController"
    33  diskSize=8000
    34  
    35  ########################################################################################################################
    36  # os disk
    37  ########################################################################################################################
    38  VBoxManage createmedium --filename ${diskPath} --size ${diskSize} --format VDI
    39  VBoxManage storagectl ${machineName} \
    40      --name "${controllerNameDisk}" \
    41      --add sata \
    42      --controller IntelAHCI
    43  VBoxManage storageattach ${machineName} \
    44      --storagectl "${controllerNameDisk}" \
    45      --port 0 \
    46      --device 0 \
    47      --type hdd \
    48      --medium ${diskPath}
    49  
    50  ########################################################################################################################
    51  # kickstart volume
    52  ########################################################################################################################
    53  
    54  diskFolder="${tmpFolder}/kickstart"
    55  kickstartFilePath="${diskFolder}/ks.cfg"
    56  
    57  mkdir -p ${diskFolder}
    58  ORBITER_BOOTSTRAP_PUBLICKEY="$(cat ${publicKeyPath})" envsubst < ${kickstartFile} > ${kickstartFilePath}
    59  
    60  kickstartDisk="${machineFolder}/OEMDRV.dmg"
    61  convertedKickstartDisk="${machineFolder}/OEMDRV.vmdk"
    62  
    63  hdiutil create -megabytes 4 -format UDIF -fs MS-DOS -volname OEMDRV  -srcfolder ${diskFolder} -ov ${kickstartDisk}
    64  VBoxManage internalcommands createrawvmdk -filename ${convertedKickstartDisk} -rawdisk ${kickstartDisk}
    65  #rm ${kickstartDisk}
    66  VBoxManage storageattach ${machineName} \
    67      --storagectl "${controllerNameDisk}" \
    68      --port 1 \
    69      --device 0 \
    70      --type hdd \
    71      --medium "${convertedKickstartDisk}" \
    72      --hotpluggable on
    73  
    74  ########################################################################################################################
    75  # installation image
    76  ########################################################################################################################
    77  imagePath=${tmpFolder}/images/${image}
    78  VBoxManage storagectl ${machineName} \
    79      --name "${controllerNameImage}" \
    80      --add ide \
    81      --controller PIIX4
    82  VBoxManage storageattach ${machineName} \
    83      --storagectl "${controllerNameImage}" \
    84      --port 0 \
    85      --device 0 \
    86      --type dvddrive \
    87      --medium "${imagePath}"
    88  
    89  VBoxManage modifyvm ${machineName} \
    90      --boot1 dvd \
    91      --boot2 disk \
    92      --boot3 none \
    93      --boot4 none