ubuntu@ubuntu:~$ lsblk -po NAME,SIZE,TYPE,FSTYPE,PARTLABEL
NAME SIZE TYPE FSTYPE PARTLABEL
/dev/loop0 1.9G loop squashfs
/dev/loop1 27.1M loop squashfs
/dev/loop2 55M loop squashfs
/dev/loop3 240.8M loop squashfs
/dev/loop4 62.1M loop squashfs
/dev/loop5 49.8M loop squashfs
/dev/sda 465.8G disk
├─/dev/sda1 292M part vfat CLR_BOOT
├─/dev/sda2 512M part swap CLR_SWAP
├─/dev/sda3 108.6G part ext4 CLR_ROOT
├─/dev/sda4 16M part Microsoft reserved partition
├─/dev/sda5 79G part ntfs Basic data partition
└─/dev/sda6 277.4G part ntfs Basic data partition
/dev/sdb 30.2G disk iso9660
├─/dev/sdb1 2.5G part iso9660
├─/dev/sdb2 3.9M part vfat
└─/dev/sdb3 27.7G part ext4
/dev/sr0 1024M rom
ubuntu@ubuntu:~$
после подписки на https://blobfolio.com/2018/06/replace-grub2-with-systemd-boot-on-ubuntu-18-04/
# Everything in this tutorial should be done as root:
sudo -i
# Now hop on into the EFI partition root.
cd /boot/efi
# Configuration files will go here:
mkdir -p loader/entries
# And kernels will go here:
mkdir ubuntu
, выполняющейся после сценарий #! / bin / bash # # Это простой обработчик ядра для заполнения записей systemd-boot # всякий раз, когда ядра добавляются или удаляются. #
# The UUID of your disk.
UUID="CHANGEME"
# The LUKS volume slug you want to use, which will result in the
# partition being mounted to /dev/mapper/CHANGEME.
VOLUME="CHANGEME"
# Any rootflags you wish to set.
ROOTFLAGS="CHANGEME"
# Our kernels.
KERNELS=()
FIND="find /boot -maxdepth 1 -name 'vmlinuz-*' -type f -print0 | sort -rz"
while IFS= read -r -u3 -d $'\0' LINE; do
KERNEL=$(basename "${LINE}")
KERNELS+=("${KERNEL:8}")
done 3< <(eval "${FIND}")
# There has to be at least one kernel.
if [ ${#KERNELS[@]} -lt 1 ]; then
echo -e "\e[2msystemd-boot\e[0m \e[1;31mNo kernels found.\e[0m"
exit 1
fi
# Perform a nuclear clean to ensure everything is always in perfect
# sync.
rm /boot/efi/loader/entries/*.conf
rm -rf /boot/efi/ubuntu
mkdir /boot/efi/ubuntu
# Copy the latest kernel files to a consistent place so we can keep
# using the same loader configuration.
LATEST="${KERNELS[@]:0:1}"
echo -e "\e[2msystemd-boot\e[0m \e[1;32m${LATEST}\e[0m"
for FILE in config initrd.img System.map vmlinuz; do
cp "/boot/${FILE}-${LATEST}" "/boot/efi/ubuntu/${FILE}"
cat << EOF > /boot/efi/loader/entries/ubuntu.conf
title Ubuntu GNOME
linux /ubuntu/vmlinuz
initrd /ubuntu/initrd.img
options cryptdevice=UUID=${UUID}:${VOLUME} root=/dev/mapper/${VOLUME} ro rootflags=${ROOTFLAGS}
EOF
done
# Copy any legacy kernels over too, but maintain their version-based
# names to avoid collisions.
if [ ${#KERNELS[@]} -gt 1 ]; then
LEGACY=("${KERNELS[@]:1}")
for VERSION in "${LEGACY[@]}"; do
echo -e "\e[2msystemd-boot\e[0m \e[1;32m${VERSION}\e[0m"
for FILE in config initrd.img System.map vmlinuz; do
cp "/boot/${FILE}-${VERSION}" "/boot/efi/ubuntu/${FILE}-${VERSION}"
cat << EOF > /boot/efi/loader/entries/ubuntu-${VERSION}.conf
title Ubuntu GNOME ${VERSION}
linux /ubuntu/vmlinuz-${VERSION}
initrd /ubuntu/initrd.img-${VERSION}
options cryptdevice=UUID=${UUID}:${VOLUME} root=/dev/mapper/${VOLUME} ro rootflags=${ROOTFLAGS}
EOF
done
done
fi
# Success!
exit 0
ubuntu.conf
title Ubuntu GNOME
linux /ubuntu/vmlinuz
initrd /ubuntu/initrd.img
options root=UUID=81c4bc1c-1a7e-4822-acae-220bbe572240 rw
, чтобы увидеть UUID
ubuntu@ubuntu:~$ lsblk -f NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT loop0 squashfs 0 100% /rofs loop1 squashfs 0 100% /snap/snapd/7264 loop2 squashfs 0 100% /snap/core18/1705 loop3 squashfs 0 100% /snap/gnome-3-34-1804/24 loop4 squashfs 0 100% /snap/gtk-common-themes/1 loop5 squashfs 0 100% /snap/snap-store/433 sda ├─sda1 vfat 1A74-A270 113.2M 61% /media/ubuntu/1A74-A270 ├─sda2 swap 10842320-1286-413f-bf08-3e0ca76bcf2f [SWAP] ├─sda3 ext4 81c4bc1c-1a7e-4822-acae-220bbe572240 87.6G 13% /media/ubuntu/81c4bc1c-1a ├─sda4 ├─sda5 ntfs 80D47B63D47B59FC └─sda6 ntfs router_data 4416017316016770 sdb iso9660 Ubuntu 20.04 LTS amd64 2020-04-23-07-51-42-00 ├─sdb1 iso9660 Ubuntu 20.04 LTS amd64 2020-04-23-07-51-42-00 0 100% /cdrom ├─sdb2 vfat 1AC3-20ED └─sdb3 ext4 writable b8474e17-164a-4fb3-94ff-d4e68f2e1548 25.7G 0% /var/crash sr0
Фактически Установить systemd-boot Для большинства людей установка состоит из одной команды:
bootctl install --path=/boot/efi
Чтобы проверить загрузчики, установленные в системе - и их порядок - выполните:
efibootmgr
reboot
как только все в порядке, вы можете удалите наличие grub в вашей системе
# Purge the packages.
apt-get purge grub*
# Purge any obsolete dependencies.
apt-get autoremove --purge