Как изменить загрузочное ядро USB Live с постоянным сохранением, работающим на Kali

Вопрос или проблема

Во-первых, проблема, с которой я столкнулся, заключается в невозможности запустить VirtualBox на Kali 2.0.

Я создал загрузочную флешку с сохранением настроек, работающую на Kali 2.0, которая в то время имела ядро 4.6.0-kali1-amd64. С тех пор я обновил/модернизировал/провел полное обновление и т.д. с использованием всех рекомендуемых источников. В рамках этого процесса были установлены новые заголовки/ядра 4.9.0-kali4-amd64. Однако даже после загрузки ядро остается 4.6.0, как подтверждают команды uname -r и ошибка, выдаваемая vbox. Я знаю, что обычно нужно настроить grub, но в usb live boot отсутствует загрузчик grub.

Ошибка, выдаваемая virtualbox, указывает, что не найден подходящий драйвер для ядра 4.6.0, а также что система не настроена на динамическое создание драйверов (хотя я считаю, что это связано с тем, что драйвер создается для версии 4.9.0, но это не текущее работающее ядро).

Из-за ошибки либо в способе установки моей живой системы, либо в способе обработки live-tools монтированного раздела, live-update-initramfs не работает в этом конкретном случае, поскольку он смотрит на /lib/live/mount/medium/ как на корень usb live устройства, хотя это не была точка монтирования (и из устройства USB требуются 3 раздела).

Вместо того чтобы возиться с монтированием/размонтированием и т.д., я смог просто создать файл initrd.img (он отсутствовал) с помощью update-initramfs и переместить его в папку live вручную из моей не-живой linux дистрибуции:

/usr/sbin/update-initramfs.orig.initramfs-tools -c -k 4.9.0-kali4-amd64

Это создает образ. vmlinuz-4.9.0-kali4-amd64 уже был доступен. Изнутри моего не-живого дистрибутива, с подключенной usb-флешкой:

  1. Я сначала переместил initrd.img и vmlinuz из папки /live на своей usb на рабочий стол (для резервного копирования).
  2. Затем я скопировал initrd.img-4.9.0-kali4-amd64 и vmlinuz из корневой папки моей usb с сохранением rw в папку /live.
  3. Я переименовал их в initrd.img и vmlinuz и перезагрузился. Voilà

-Большое спасибо Джеффу С. за его вклад.

Я обнаружил, что установка persistence USB также не обновляет живое ядро, это кажется не ошибкой, а скорее задумкой. Конфигурация grub и ядро не изменяются с момента создания USB с использованием ISO.

Тем не менее, вы можете перезаписать свой живой раздел, используя еженедельный Kali ISO, который заменит ядро и конфигурацию Grub для вас (вместе со всем остальным), поскольку последнее обновление ядра будет присутствовать по сравнению с выпусками.

Так как это обновляет только содержимое раздела загрузки live, ваш раздел сохранения не будет затронут и должен остаться в порядке.

https://cdimage.kali.org/kali-images/kali-weekly/

Было бы разумно убедиться, что вы выполняете обычные команды обновления, чтобы убедиться, что последние файлы ядра присутствуют на вашем разделе сохранения перед обновлением раздела live.

apt update && apt full-upgrade

Я хотел бы поделиться своим решением (работающим на kali linux) для этого старого обсуждения.

Мое внешнее USB устройство, работающее под kali linux live, это /dev/sda1

  1. Загрузите свое live устройство и войдите в систему
  2. sudo apt update
  3. sudo apt upgrade
  4. sudo /usr/sbin/update-initramfs.orig.initramfs-tools -u -k all
  5. sudo mount -o remount,rw /dev/sda1
  6. sudo mount /dev/sda1 /mnt
  7. sudo cp /boot/vmlinuz-6.8.11-amd64 /mnt/live
  8. sudo cp /boot/initrd.img-6.8.11-amd64 /mnt/live
  9. sudo vi /mnt/boot/grub/grub.cfg

Вот как выглядит конфигурация grub после редактирования:

menuentry “Live system with USB Encrypted persistence” {
linux /live/vmlinuz-6.8.11-amd64 boot=live components splash noeject findiso=${iso_path} persistent=cryptsetup persistence-encryption=luks persistence
initrd /live/initrd.img-6.8.11-amd64
}

Перезагрузите систему, и все готово.

Улучшения приветствуются.

@ithin live persistence, выполните следующие действия:

mkdir /lib/live/mount/medium    
mount /dev/sdxx (live usb stick) /lib/live/mount/medium    
live-update-initramfs -u

edit /dev/sdxx/boot/grub/grub.conf —> initrd.img

Ни одна из существующих операционных систем на основе ISO9660 не предоставляет функции обновления ядра: ядро и initrd – это единственные компоненты, которые живая операционная система не может обновить, потому что они находятся вне раздела сохранения данных (если такой есть) и системный раздел, как было сказано, форматирован в ISO9660.

Белая книга liveng на Read the Docs показывает, как добиться того, чего вы спрашиваете:

Полная цель проекта liveng — предоставить сообществу набор
лучших практик для превращения обычного Debian Linux live в
live(ng) операционную систему, обладающую:

встроенной зашифрованной сохранностью;
обновлением ядра (на live ISO 9660 файловой системе!);
совместимости с UEFI и UEFI Secure Boot, с реальным efi разделом.

Чтобы изменить загружаемое ядро на USB live с сохранением, работающий на Kali Linux:

Загрузите ядро: получите желаемую версию ядра из официальных репозиториев Kali.
Смонтируйте USB накопитель: подключите ваш USB и смонтируйте разделы загрузки и сохранения.
Скопируйте файлы ядра: замените текущие файлы ядра (vmlinuz и initrd.img) в каталоге /boot на новые.
Обновите загрузчик: отредактируйте файл grub.cfg (обычно в /boot/grub/), чтобы указать на новое ядро.
Сохраните и перезагрузите: сохраните изменения, размонтируйте USB и перезагрузите в обновленное ядро.
Убедитесь, что вы сделали резервную копию важных данных перед изменениями.

.

Ответ или решение

Чтобы изменить загрузочное ядро на USB-устройстве с персистентным режимом, работающим под Kali Linux, следуйте следующим шагам:

Фундаментальное понимание:

  • Проблема состоит в том, что вы не можете запустить VirtualBox на Kali 2.0, так как текущая версия ядра 4.6.0 не поддерживается, а обновление не изменило загружаемое ядро.
  • Ядро и связанные файлы, такие как vmlinuz и initrd.img, не обновляются автоматически в режиме "live" с персистентностью.

Шаги для обновления ядра:

  1. Загрузка нужной версии ядра:
    Сначала обновите текущие пакеты и скачайте нужную версию ядра из официальных репозиториев Kali Linux.

    sudo apt update && sudo apt install linux-image-4.x.x.amd64

    Замените 4.x.x на фактическую версию ядра, которую планируете установить.

  2. Монтирование USB-устройства:
    Подключите ваше USB-устройство к системе. Подразумевая, что ваш USB-устройство определено как /dev/sda1, выполните:

    sudo mount /dev/sda1 /mnt
  3. Копирование файлов ядра:
    Замените текущие файлы ядра на новые версии.

    sudo cp /boot/vmlinuz-4.x.x-amd64 /mnt/live
    sudo cp /boot/initrd.img-4.x.x-amd64 /mnt/live

    Убедитесь, что вы корректно указываете версию ядра.

  4. Редактирование конфигурации загрузчика:
    Откройте файл конфигурации GRUB для редактирования.

    sudo vi /mnt/boot/grub/grub.cfg

    Пример записи в конфигурации:

    menuentry "Live system with new kernel" {
       linux /live/vmlinuz-4.x.x-amd64 boot=live components splash noeject findiso=${iso_path} persistent
       initrd /live/initrd.img-4.x.x-amd64
    }
  5. Перезагрузка:
    Сохраните изменения, размонтируйте USB-устройство и перезагрузите систему. Теперь она должна загрузиться с новой версией ядра.

Результат:
Эти действия позволят вашему Kali Linux работать с новой версией ядра, что обеспечит совместимость с VirtualBox и возможность установки необходимых драйверов.

Совет:
Обязательно сделайте резервные копии важных данных перед внесением изменений. В случае необходимости восстановления системы, это позволит минимизировать возможные риски.

Эти шаги дают системный подход к обновлению ядра и гарантируют, что ваши изменения будут успешными и безболезненными.

Оцените материал
Добавить комментарий

Капча загружается...