Загрузка NVMe SSD с USB-накопителя

tl; dr - как загрузить установку Ubuntu Server с USB-ключа?

Я пытаюсь загрузить установку Ubuntu Server 18.04 LTS на сервере, который не позволяет загрузиться с диска NVMe. Поскольку диск виден после загрузки (например, после загрузки на Live CD), моя мысль заключалась в том, чтобы заставить его работать по цепочке, загружая ОС с USB-диска/ключа, который я постоянно подключаю.

я рыскал через интернет для руководства о том, как это сделать, но все, что я нашли на концептуальном уровне. Я ищу кого-то, чтобы давать ссылки на документацию или пошаговое руководство.

технические характеристики оборудования (при необходимости):

Dell Poweredge R230
Startech X4 PCI Express для M. 2 PCIe SSD адаптер карты
Samsung 970 EVO NVMe (M. 2) 250 ГБ
Kingston DataTraveler SE9 16GB

30
задан megahertz
06.05.2023 5:27 Количество просмотров материала 3455
Распечатать страницу

1 ответ

у меня есть USB-накопитель, который я использую для загрузки с моего ноутбука, который имеет периодические проблемы с внутренним жестким диском. Иногда это не будет обнаружено в BIOS, но это всегда обнаруживается однажды уже загруженный.

если на вашем внутреннем диске установлена systemd-boot, следуйте первому руководству. Если нет, перейдите ко второму способу. Установка systemd-boot на внутренний диск является рекомендуемым методом

Guide 1: Systemd-boot on Внутренний Диск

  1. загрузите live CD на компьютере. Вставьте USB-накопитель, который будет использоваться для загрузки с NVMe-накопителя.

  2. создайте раздел FAT32 на USB-накопителе. Убедитесь, что включены флаги boot и esp. Самый простой способ сделать это с gparted.

  3. смонтировать раздел FAT32. Для остальных шагов я предполагаю, что он установлен на /mnt / usbboot

  4. добавьте загрузочный раздел USB в fstab, чтобы он был смонтирован автоматически. Самый простой способ сделать это-chroot (используйте arch-chroot, это проще) во внутренний диск, а затем запустите sudo genfstab -U / > /etc/fstab.

  5. создайте этот файл на внутреннем диске ` ' /etc/systemd/system / boot-sync.сервис'

    Примечание: вам понадобится rsync установлен для этого systemd блок.

  6. вставьте в созданный файл следующее:

[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-потребителя.цель

  1. Chroot во внутренний диск и запустите следующую команду:sudo systemctl enable --now boot-sync.service

  2. Reboot и выберите привод USB вы как раз создали как загрузочное устройство по умолчанию.


руководство 2: Systemd-загрузка с USB-накопителя-не рекомендуется

  1. загрузите live CD на компьютере. Вставьте USB-накопитель, который будет использоваться для загрузки с NVMe-накопителя.

  2. создайте раздел FAT32 на USB-накопителе. Убедитесь, что включены флаги boot и esp. Самый простой способ сделать это с gparted.

  3. смонтировать раздел FAT32. Для остальных шагов я предполагаю, что он установлен в /mnt / usbboot

  4. Chroot в ваш внутренний диск и запустить эту команду sudo bootctl --path=/mnt/usbboot install

  5. выполните эту команду (также внутри chroot на вашем внутреннем диске) sudo bootctl update (Примечание: это не обязательно, но не повредит)

  6. создайте запись для диска 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 и поиск корневого раздела.

  1. создать каталог /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 блока

  1. создайте этот файл на внутреннем диске ` ' /etc/systemd/system / boot-sync.сервис'

  2. вставьте в файл следующее создано:

[Unit]

описание= "синхронизировать загрузочные файлы с внутреннего диска на usb-накопитель"

RequiresMountsFor=/mnt / usboot

[Service]

Type=oneshot

ExecStart=/бин/Баш-С "по rsync -rlgopuv /загрузки/*.IMG в каталог /mnt/usbboot/"

ExecStart=/ОГРН/по rsync -rlgopuv файл /boot/vmlinuz-Linux в каталоге /MNT/usbboot/

[установить] WantedBy=Multi-потребителя.цель

  1. Chroot во внутренний диск и запустите следующую команду:sudo systemctl enable --now boot-sync.service

  2. Перезагрузка и выберите USB-накопитель, созданный по умолчанию загрузочного устройства.

-1
отвечен Layne Bernardo 2023-05-07 13:15

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

bootloader
dell-poweredge
nvme
ssd
ubuntu
Вверх