Вопрос или проблема
Во-первых, проблема, с которой я столкнулся, заключается в невозможности запустить 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-флешкой:
- Я сначала переместил initrd.img и vmlinuz из папки /live на своей usb на рабочий стол (для резервного копирования).
- Затем я скопировал initrd.img-4.9.0-kali4-amd64 и vmlinuz из корневой папки моей usb с сохранением rw в папку /live.
- Я переименовал их в 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
- Загрузите свое live устройство и войдите в систему
sudo apt update
sudo apt upgrade
sudo /usr/sbin/update-initramfs.orig.initramfs-tools -u -k all
sudo mount -o remount,rw /dev/sda1
sudo mount /dev/sda1 /mnt
sudo cp /boot/vmlinuz-6.8.11-amd64 /mnt/live
sudo cp /boot/initrd.img-6.8.11-amd64 /mnt/live
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" с персистентностью.
Шаги для обновления ядра:
-
Загрузка нужной версии ядра:
Сначала обновите текущие пакеты и скачайте нужную версию ядра из официальных репозиториев Kali Linux.sudo apt update && sudo apt install linux-image-4.x.x.amd64
Замените
4.x.x
на фактическую версию ядра, которую планируете установить. -
Монтирование USB-устройства:
Подключите ваше USB-устройство к системе. Подразумевая, что ваш USB-устройство определено как /dev/sda1, выполните:sudo mount /dev/sda1 /mnt
-
Копирование файлов ядра:
Замените текущие файлы ядра на новые версии.sudo cp /boot/vmlinuz-4.x.x-amd64 /mnt/live sudo cp /boot/initrd.img-4.x.x-amd64 /mnt/live
Убедитесь, что вы корректно указываете версию ядра.
-
Редактирование конфигурации загрузчика:
Откройте файл конфигурации 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 }
-
Перезагрузка:
Сохраните изменения, размонтируйте USB-устройство и перезагрузите систему. Теперь она должна загрузиться с новой версией ядра.
Результат:
Эти действия позволят вашему Kali Linux работать с новой версией ядра, что обеспечит совместимость с VirtualBox и возможность установки необходимых драйверов.
Совет:
Обязательно сделайте резервные копии важных данных перед внесением изменений. В случае необходимости восстановления системы, это позволит минимизировать возможные риски.
Эти шаги дают системный подход к обновлению ядра и гарантируют, что ваши изменения будут успешными и безболезненными.