у меня есть USB-накопитель, который я использую для загрузки с моего ноутбука, который имеет периодические проблемы с внутренним жестким диском. Иногда это не будет обнаружено в BIOS, но это всегда обнаруживается однажды уже загруженный.
если на вашем внутреннем диске установлена systemd-boot, следуйте первому руководству. Если нет, перейдите ко второму способу. Установка systemd-boot на внутренний диск является рекомендуемым методом
Guide 1: Systemd-boot on Внутренний Диск
загрузите live CD на компьютере. Вставьте USB-накопитель, который будет использоваться для загрузки с NVMe-накопителя.
создайте раздел FAT32 на USB-накопителе. Убедитесь, что включены флаги boot и esp. Самый простой способ сделать это с gparted.
смонтировать раздел FAT32. Для остальных шагов я предполагаю, что он установлен на /mnt / usbboot
добавьте загрузочный раздел USB в fstab, чтобы он был смонтирован автоматически. Самый простой способ сделать это-chroot (используйте arch-chroot, это проще) во внутренний диск, а затем запустите sudo genfstab -U / > /etc/fstab
.
создайте этот файл на внутреннем диске ` ' /etc/systemd/system / boot-sync.сервис'
Примечание: вам понадобится rsync установлен для этого systemd блок.
вставьте в созданный файл следующее:
[Unit]
описание= "синхронизировать загрузочные файлы с внутреннего диска на usb-накопитель"
RequiresMountsFor=/mnt / usboot
[Service]
Type=oneshot
ExecStart=/бин/Баш-С "по rsync -rlgopuv /загрузки/*.IMG в каталог /mnt/usbboot/"
ExecStart=/ОГРН/по rsync -rlgopuv файл /boot/vmlinuz-Linux в каталоге /MNT/usbboot/
ExecStart=/ОГРН/по rsync -rlgopuv файл /boot/efi в каталог /mnt/usbboot/
ExecStart=/ОГРН/по rsync -rlgopuv /загрузки/грузчик /шоссе/usbboot/
по[install] WantedBy=Multi-потребителя.цель
Chroot во внутренний диск и запустите следующую команду:sudo systemctl enable --now boot-sync.service
Reboot и выберите привод USB вы как раз создали как загрузочное устройство по умолчанию.
руководство 2: Systemd-загрузка с USB-накопителя-не рекомендуется
загрузите live CD на компьютере. Вставьте USB-накопитель, который будет использоваться для загрузки с NVMe-накопителя.
создайте раздел FAT32 на USB-накопителе. Убедитесь, что включены флаги boot и esp. Самый простой способ сделать это с gparted.
смонтировать раздел FAT32. Для остальных шагов я предполагаю, что он установлен в /mnt / usbboot
Chroot в ваш внутренний диск и запустить эту команду sudo bootctl --path=/mnt/usbboot install
выполните эту команду (также внутри chroot на вашем внутреннем диске) sudo bootctl update
(Примечание: это не обязательно, но не повредит)
создайте запись для диска NVMe на каталог /mnt/USB кабель/грузчик/записи/ubuntu_server.conf
это должно выглядеть примерно так:
title Ubuntu Server 18.04
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=PARTUUID=XXXX rw
заменить XXXX С PARTUUID корневого раздела диска NVMe.
Это можно найти, запустив blkid и поиск корневого раздела.
- создать каталог /mnt/USB кабель/погрузчик/погрузчик.conf
это должно выглядеть примерно так:
default ubuntu_server
timeout 4
editor 0
Примечание: выполните любой шаг 8A или шаг 8B. Если вы решите скопировать файлы вручную, их нужно будет перекрывать каждый раз при обновлении ядра
8A (не рекомендуется). Вручную скопировать /boot/initramfs-linux.img
и /boot/vmlinuz-linux
из загрузочного раздела внутреннего диска на USB-накопитель. Эти файлы необходимо обновлять каждый раз при обновлении ядра или перестроении initramfs.
8B. Если вы хотите использовать скрипт вместо копирования вручную, сначала добавьте Загрузочный раздел USB к fstab, так что он автоматически монтируется. Самый простой способ сделать это-chroot (используйте arch-chroot, это проще) во внутренний диск, а затем запустите sudo genfstab -U / > /etc/fstab
.
Примечание: вам понадобится rsync установлен для этого systemd блока
создайте этот файл на внутреннем диске ` ' /etc/systemd/system / boot-sync.сервис'
вставьте в файл следующее создано:
[Unit]
описание= "синхронизировать загрузочные файлы с внутреннего диска на usb-накопитель"
RequiresMountsFor=/mnt / usboot
[Service]
Type=oneshot
ExecStart=/бин/Баш-С "по rsync -rlgopuv /загрузки/*.IMG в каталог /mnt/usbboot/"
ExecStart=/ОГРН/по rsync -rlgopuv файл /boot/vmlinuz-Linux в каталоге /MNT/usbboot/
[установить]
WantedBy=Multi-потребителя.цель
Chroot во внутренний диск и запустите следующую команду:sudo systemctl enable --now boot-sync.service
Перезагрузка и выберите USB-накопитель, созданный по умолчанию загрузочного устройства.