diff options
| author | Daniil Baturin <daniil@vyos.io> | 2023-12-19 20:04:40 +0000 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-19 20:04:40 +0000 | 
| commit | ac170ee4bb0af8189e56d5cf55da36815a7f5046 (patch) | |
| tree | 626b810bb0a90e5c3370eb2400c8d77df836391e /python | |
| parent | b873112dd7253b64d323e183758dbabaa0f28b6e (diff) | |
| parent | 37bd574c4e1f49b03f985c4293513ff7107ae82f (diff) | |
| download | vyos-1x-ac170ee4bb0af8189e56d5cf55da36815a7f5046.tar.gz vyos-1x-ac170ee4bb0af8189e56d5cf55da36815a7f5046.zip | |
Merge pull request #2643 from mcbridematt/t5828-grub-arm64-fix
T5828: fix grub installation on arm64-efi machines
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/system/grub.py | 22 | 
1 files changed, 15 insertions, 7 deletions
| diff --git a/python/vyos/system/grub.py b/python/vyos/system/grub.py index 61a9c7749..a94729964 100644 --- a/python/vyos/system/grub.py +++ b/python/vyos/system/grub.py @@ -13,6 +13,8 @@  # You should have received a copy of the GNU Lesser General Public  # License along with this library.  If not, see <http://www.gnu.org/licenses/>. +import platform +  from pathlib import Path  from re import MULTILINE, compile as re_compile  from typing import Union @@ -57,16 +59,22 @@ def install(drive_path: str, boot_dir: str, efi_dir: str, id: str = 'VyOS') -> N          boot_dir (str): a path to '/boot' directory          efi_dir (str): a path to '/boot/efi' directory      """ -    commands: list[str] = [ -        f'grub-install --no-floppy --target=i386-pc --boot-directory={boot_dir} \ -            {drive_path} --force', -        f'grub-install --no-floppy --recheck --target=x86_64-efi \ + +    efi_installation_arch = "x86_64" +    if platform.machine() == "aarch64": +        efi_installation_arch = "arm64" +    elif platform.machine() == "x86_64": +        cmd( +            f'grub-install --no-floppy --target=i386-pc \ +            --boot-directory={boot_dir}  {drive_path} --force' +        ) + +    cmd( +        f'grub-install --no-floppy --recheck --target={efi_installation_arch}-efi \              --force-extra-removable --boot-directory={boot_dir} \              --efi-directory={efi_dir} --bootloader-id="{id}" \              --no-uefi-secure-boot' -    ] -    for command in commands: -        cmd(command) +    )  def gen_version_uuid(version_name: str) -> str: | 
