Как я могу установить несколько дистрибутивов Linux на USB-накопитель?

Ограничьте их учетную запись root с помощью SELinux (например, semanage user ... ) и установите политику, запрещающую доступ к файлу для назначенного пользователя SELinux. Затем через cron снова снимите ограничения с их аккаунта. Без шифрования, просто, у них будет учетная запись root, но они не смогут ничего делать с файлом.

1
02.04.2018, 17:04
4 ответа

Как установить несколько дистрибутивов Linux на USB-накопитель?

Предположим:

  • Загрузка BIOS с USB-накопителя
  • Разделы MBR
  • Загрузчик GRUB

Инструменты:

  • супер _grub2 _диск _гибрид _2.02s9.iso
  • pmagic _2013 _08 _01.iso(последняя бесплатная версия Содержит как 32-битную, так и 64-битную версию)
  • memdisk Единственный файл, необходимый для этого, — предварительно скомпилированный двоичный файл memdisk.archive/bios/memdisk
  • рабочий компьютер с виртуальной машиной

Обзор:

  • Обнуление таблицы разделов и загрузочной записи USB-накопителя
  • Создание разделов на USB-накопителе
  • Создание ОС для USB-накопителя на виртуальной машине
  • Клонирование новых ОС с помощью clonezilla
  • Восстановление ОС на USB-накопитель
  • Обновление и настройка GRUB2

Шаг 1

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

Общий объем USB-накопителя составляет 32 ГБ.

Разделы, которые мы настроим.

Раздел NTFS 16 ГБ для совместимости с Microsoft.

32-битный сервер Ubuntu14 4 ГБ ext4 с разделом подкачки 1 ГБ

64-битный сервер Ubuntu16 8 ГБ ext4 с разделом подкачки 4 ГБ

ПРИМЕЧАНИЕ.:Если вы не используете ждущий или спящий режим ни на одной из ОС, они могут совместно использовать один раздел подкачки или даже использовать файл подкачки в каждом из разделов ОС.

Схема раздела:

  • P1 --15 ГБ NTFS
  • P2 --4 ГБ, доб.4
  • P3 --8 ГБ, доб.4
  • P4 --расширенный
  • E1 --Подкачка 4 ГБ
  • E2 --Подкачка 1 ГБ

ПРИМЕЧАНИЕ.:BIOS и MBR будут видеть только 4 основных раздела. Используйте расширенный раздел вместо одного основного раздела, чтобы обойти это ограничение.


Шаг 2

Подготовьте USB-накопитель.

Создайте новую виртуальную машину с именем «test». Для этой виртуальной машины не требуется и не требуется жесткий диск. Это должно сделать USB-накопитель /dev/sda. Это упростит задачу в дальнейшем.

Подключите ISO-образ Parted Magic к виртуальной машине и загрузитесь с ISO-образа.

Подключите USB-накопитель и «передайте на виртуальную машину»

Убедитесь, что USB виден в виртуальной машине, и запишите номер устройства.

Запустите Редактор разделов со значка на рабочем столе.

USB-накопитель в моей настройке —:/dev/sda

Обнуление таблицы разделов. Это удалит ВСЮ информацию на этом устройстве. Сначала скопируйте любые данные, которые хотите сохранить.

  • ДОЛЖЕН иметь правильное устройство (пример :/dev/sda ), потому что вы можете сделать ваш компьютер перестанет загружаться, если вы обнулите неправильное устройство.
  • dd if=/dev/zero of=/dev/sda bs=512 count=4

Обновить список дисков в GParted (ctrl+R)

устройство --> создать таблицу разделов «msdos»

Создать разделы:

ПРИМЕЧАНИЕ.:Я создал раздел NTFS последним, чтобы «использовать» оставшееся пространство.

  • Создайте расширенный раздел в конце пространства. 5 ГБ или 5120
  • Создайте оба раздела подкачки в расширенном разделе. Тип линукс -своп. 4 ГБ, 1 ГБ. Расширенный раздел будет заполнен.
  • Создайте 2 раздела ОС в конце нераспределенного пространства. Тип доб4. 4 ГБ, 8 ГБ.
  • Метка 4 ГБ «Ubuntu14» (метка изменится при восстановлении, это помогает в идентификации)
  • Метка 8 ГБ «Ubuntu16» (метка изменится при восстановлении, это помогает в идентификации)
  • Создайте раздел данных NTFS, используя оставшееся нераспределенное пространство. в начале привода. Введите NTFS.
  • Пометить NTFS как «данные»

Применить изменения. Должно выглядеть что-то близкое к этому. Обратите внимание, что объем моего USB-накопителя составляет 1 ТБ, поэтому мой раздел NTFS намного больше.GParted Screen shot


Шаг 3

Подготовьте ОС, которые будут восстановлены на USB-накопитель.

Создана новая виртуальная машина и установлена ​​ОС. В этом примере сервер Ubuntu14 32-битный. Я сделал установочный диск виртуальной машины меньше размера раздела на USB. 4ГБ. Во время установки я использовал MBR, а не LVM, и позволил установке создать раздел подкачки.

Создана новая виртуальная машина и установлена ​​другая ОС. В этом примере сервер Ubuntu16 64-битный. Я сделал установочный диск виртуальной машины меньше размера раздела на USB. 8 ГБ. Во время установки я использовал MBR, а не LVM, и позволил установке создать раздел подкачки.

Внесите любые изменения, обновления и установки для каждой ОС.

Завершение работы новых виртуальных машин

Запустить клонирование новых ВМ.

Подключите pmagic_2013_08_01.isoк каждой новой виртуальной машине и загрузитесь с ISO-образа.

Просмотрите разделы на каждой виртуальной машине. Обратите внимание на расположение установленной ОС. Оба должны быть /dev/sda1.(Если не выполнить настройку позже)

Теперь клонируйте каждую ОС с помощью clonezilla со значка на рабочем столе. Я размещу свои клонированные изображения на своем рабочем столе через ssh, поэтому настройте сеть перед запуском clonezilla.

Параметры Clonezilla:

  • устройство -образ --клонирование устройства /dev/sda1 в образ
  • ssh _сервер --размещение изображения на моем рабочем столе. Разместите свое где угодно вы можете добраться до него.
  • Режим новичка --большинство значений по умолчанию будут работать
  • saveparts --нам нужен только раздел ОС.
  • дайте изображению имя, которое вы придумаете позже.
  • sda1 --выберите раздел ОС. Должен быть только один выбор, но может нет.
  • пропустить проверку/восстановление исходной файловой системы --Все виртуальные машины должны быть чистый и готовый
  • Да, проверьте сохраненное изображение --Убедитесь, что клонированное изображение является хорошим файл. следуйте подсказкам.
  • подождите.
  • Готово! --На данный момент отключение питания в порядке.

Шаг 4

Восстановите образы ОС на USB-накопитель.

Вернитесь к «тестовой» ВМ, к которой не подключен виртуальный диск, и загрузитесь с pmagic_2013_08_01.iso.

Передайте USB-накопитель на «тестовую» виртуальную машину.

Запустите редактор разделов с помощью значка на рабочем столе. Мы вернулись сюда. См. Скриншот.

Сопоставьте ОС с разделами USB с разделами образа.

Ubuntu14:

  • раздел образа --/dev/sda1
  • Раздел USB --/dev/sda3

Ubuntu16:

  • раздел образа --/dev/sda1
  • Раздел USB --/dev/sda2

ПРИМЕЧАНИЕ:Эта версия clonezilla по умолчанию восстанавливает образ в тот же раздел, из которого он был создан. с /dev/sda1по /dev/sda1. Не то, что мы хотим,так что этот хак восстановит образы на разделах USB.

Взлом clonezilla для восстановления образа в другой раздел, из которого он был клонирован:

Переименуйте все файлы в каталоге изображений с новым идентификатором раздела.

/home/jc/clonezilla_images/ubuntu14/sda1* to /home/jc/clonezilla_images/ubuntu14/sda3*

Modify the content of file /home/jc/clonezilla_images/ubuntu14/parts. Replace 'sda1' with 'sda3'

То же самое для Ubuntu16, скорректируйте числа sda2.

ПРИМЕЧАНИЕ.:Я начал с устройства sda как на виртуальной машине, так и на USB. Если у вас используется другое устройство, например, /dev/sdb, необходимо изменить дополнительные файлы. Просто проще начать с обоих на одном устройстве. /dev/sda.

Восстановление изображений на USB-накопитель с помощью clonezilla

Параметры Clonezilla:

  • устройство -образ --восстановление устройства /dev/sda1 из образа
  • ssh _server --Или куда бы вы ни поместили образ.
  • Режим новичка --большинство значений по умолчанию будут работать
  • restoreparts --восстановление одного раздела
  • выберите изображение для восстановления
  • выберите правильный раздел USB для образа --Ubuntu14 to sda3; От Ubuntu16 до sda2
  • следуйте инструкциям.
  • подождите.
  • Введите приглашение командной строки. --Есть еще изображения для восстановления

Перезапустите clonezilla и повторите для всех изображений.

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


Шаг 5

Установите GRUB на USB-накопитель

Загрузчик Grub будет установлен на первые 512 байт USB-накопителя. Этот загрузчик будет указывать на файл grub.cfg. Разместим наш на разделе Ubuntu16. Это может быть везде, где grub может прочитать.

Для этого мы будем использовать нашу основную ОС.

Для этого можно использовать работающую ОС на виртуальной машине.

Следует использовать текущую ОС Linux с grub2.

Подключите USB.

Мой USB-накопитель в настоящее время подключен как устройство /dev/sdf. Ваш будет отличаться.

Смонтируйте раздел, в котором будет жить grub.cfg.

ПРИМЕЧАНИЕ.:Каждая восстановленная ОС будет иметь файл grub.cfg, поскольку она была загружаемой ОС на виртуальной машине. Убедитесь, что вы указываете и изменяете файл grub.cfg, на который указывает загрузчик USB.

Ubuntu16 доб.4

sudo mount /dev/sdf2 /media/usb_u16

установить загрузчик grub на USB-устройство

sudo grub-install --recheck --boot-directory=/media/usb_u16/boot /dev/sdf

Это поместит указатель файла конфигурации в загрузочный каталог раздела Ubuntu16. Обычное место для Ubuntu. Ваш может быть где угодно.

Установка завершена. Об ошибках не сообщается.

Создайте файл grub.cfgдля работы в качестве шаблона.

sudo grub-mkconfig --output=/media/usb_u16/boot/grub/grub.cfg

Здесь важно то, что grub-mkconfigпроверит USB-накопитель и создаст загрузочные записи для ОС, которые мы установили на USB-накопитель. Мы не хотим, чтобы он также проверял все установленные диски на хост-компьютере и создавал для них записи.

Теперь размонтируйте все и проверьте загрузку с USB.

Если все работает, вы сможете загрузить ОС USB. Если не вернуться...


Шаг 6 Настройте файл grub.cfg на USB-накопителе

При загрузке с этого USB-накопителя вы увидите ОС на хост-компьютере, даже если USB-накопитель загружается на другом ПК. Давайте исправим это.

Давайте соберем больше информации.

Каждому разделу присвоен номер UUID. Получите UUID для нашего USB-накопителя.

blkid

/dev/sdf2: UUID="078ecc53-f73c-4cc7-9d45-f78aa534b7c5" TYPE="ext4" PARTUUID="00005785-02"
/dev/sdf3: UUID="a4654333-ee62-4dac-8c09-79a034e3125d" TYPE="ext4" PARTUUID="00005785-03"
/dev/sdf4: LABEL="data" UUID="667308CA28B6BB86" TYPE="ntfs" PARTUUID="00005785-04"
/dev/sdf5: UUID="8646e3f8-4f5c-40d4-a409-c4d65bf98d21" TYPE="swap" PARTUUID="00005785-05"
/dev/sdf6: UUID="61b8680c-22c9-4efc-98a1-2aaaa4a7f304" TYPE="swap" PARTUUID="00005785-06"

Ваш будет отличаться.

2 UUID раздела подкачки сохраняются на потом. Вы добавите их в файл /etc/fstabдля автоматического монтирования при загрузке.

UUID 2 разделов ОС:

/dev/sdf2: UUID="078ecc53-f73c-4cc7-9d45-f78aa534b7c5" -- Ubuntu16
/dev/sdf3: UUID="a4654333-ee62-4dac-8c09-79a034e3125d" -- Ubuntu14

Скопируйте 2 файла memdiskи super_grub2_disk_hybrid_2.02s9.isoв каталог конфигурации grub и образ splash.jpg, если он у вас есть.

Ubuntu16 доб.4

sudo mount /dev/sdf2 /media/usb_u16

sudo cp./memdisk /media/usb_u16/boot

sudo cp./super_grub2_disk_hybrid_2.02s9.iso /media/usb_u16/boot

sudo cp./splash.jpg /media/usb_u16/boot

Создать резервную копию созданногоgrub.cfg

sudo mv /media/usb_u16/boot/grub/grub.cfg /media/usb_u16/boot/grub/grub.cfg.orginal

Создайте свой собственныйgrub.cfg

sudo vi /media/usb_u16/boot/grub/grub.cfg

Короче говоря, нам нужно скопировать из grub.cfg.orginal только самый минимум. Материал установки grub insmod..., элемент отображения gfxmode=... и загрузочные записи. Загрузочные записи можно найти, выполнив поиск номеров UUID сверху. Скопируйте все, включая элементы подменю -или только основной элемент.

memdiskи super_grub2_disk_hybrid_2.02s9.isoпозволяют нам загружаться с любой ОС на хост-компьютере, даже если загрузочные записи не существуют.

Есть много причин, по которым это неправильный способ, но он работает.

Изменить Пример grub.cfg для этого USB-накопителя.

Сделайте резервную копию пользовательского grub.cfgфайла, потому что кто-то попытается перезаписать его.

sudo cp /media/usb_u16/boot/grub/grub.cfg /media/usb_u16/boot/grub/grub.cfg.custom


Шаг 7

Настройка установленных ОС

  • Добавьте UUID раздела подкачки в/etc/fstab
  • Добавьте любые автоматически монтируемые разделы (Данные NTFS, другие ОС ext4 )на USB к/etc/fstab
  • В Ubuntu я бы скорректировал записи grub по умолчанию с моими изменениями, поэтому при обновлении ОС изменения будут распространяться на новый grub меню.

Проверь!

1
27.01.2020, 23:32

Предоставленные ответы содержат полезную информацию и дают представление о процессе, который я считаю очень важным (особенно для авто -дидактических типов, которые описывают многих из нас здесь, в SE ).

Тем не менее, есть бесплатный проект, который более или менее достигает чего-то подобного для тех, кто приходит сюда и просто хочет сделать что-то подобное, если не то же самое.

https://www.pendrivelinux.com/yumi-multiboot-usb-creator/

Имя глупое. Графика сырная. Инструменты работают, и работают очень хорошо. По крайней мере, исходный код, который они предоставляют, может вам помочь.

0
27.01.2020, 23:32

Несколько советов и комментариев к туториалу jc __

Прежде всего, большое спасибо jc__(еще раз )за публикацию его руководства о том, как вы можете достичь цели, указанной в моем первоначальном посте. Я могу подтвердить, что этот метод работает, несмотря на то, что вам, возможно, придется выполнить некоторые дополнительные действия по устранению неполадок, когда придет время загрузки установленных ОС, поэтому я делаю этот ответ, чтобы перечислить несколько вещей, которые вы, возможно, захотите рассмотреть, следуя руководству.

0. Если вы выбираете более старые дистрибутивы, внимательно проверьте возможность их загрузки

Я узнал на горьком опыте, что Fedora 8 слишком старая для загрузки на более новом оборудовании, таком как мой нынешний ноутбук (Напомню, Fedora 8 была выпущена примерно в 2007 году; мой ноутбук был построен в 2010-х годах ). Я не помню точных подробностей (, так как я узнал об этом благодаря одному из моих коллег ), но, похоже, ядро ​​имеет проблемы с моим оборудованием и не может правильно смонтировать все, поэтому я в конце концов бросил Fedora 8 для Fedora 14 (, которая отлично работает ).

Но как можно проверить, правильно ли загрузится дистрибутив на вашем компьютере? Простой подход заключается в загрузке с USB Live-версии целевого дистрибутива. Если с Live-версией все загружается нормально, то у вас не должно возникнуть проблем с установкой дистрибутива через виртуальную машину, клонированием ее раздела на USB-накопителе и загрузкой с USB-накопителя.

В моем случае я использовал YUMI -Multiboot USB Creator для тестирования нескольких Live-версий старых выпусков Fedora на моем ноутбуке. Конечно, этот совет применим только в том случае, если вам, как и мне, нужно использовать старые дистрибутивы.

1. Рассмотрите возможность использования FAT32 или ext3/ext4 для раздела данных

В какой-то момент у моего Ubuntu 16.04 возникли проблемы с разделом данных, когда он был отформатирован в NTFS. В конце концов, я -отформатировал его как FAT32 -— более старый формат, с которым должен работать любой дистрибутив Linux. ext3/ext4 также должны быть в порядке, если вы используете исключительно Linux (, насколько я знаю, Windows не может работать с этими файловыми системами ), хотя я сам не проверял это.

Теперь я использую раздел данных как способ легко обмениваться данными между операционными системами на USB-накопителе и операционными системами на хост-компьютере.

2. Рассмотрите возможность использования дополнительного USB-накопителя для клонирования раздела

Наличие второго USB-накопителя может быть очень удобным для первых шагов, так как вы можете использовать его для хранения изображений, созданных clonezilla. Когда clonezillaспросит вас, куда вы поместите папку /home/partimag/, выберите первый вариант в меню (чуть выше ssh _сервер ), пока ваш второй USB-накопитель не подключен к вашей машине, затем подключите его, подождите около 5 секунд и нажмите Enter, затем выберите второй USB-накопитель, когда clonezillaперечислит ваши параметры для папки /home/partimag/. Последующие операции будут идентичны перечисленным jc __.

Этот подход, конечно, -не -меняет результат, и его достоинство заключается в том, что он вообще не задействует ваш хост-компьютер при создании разделов USB-накопителя и клонировании/восстановлении разделов, на которых находятся целевые ОС. расположены. Вы можете попробовать это, если вы не уверены, стоит ли играться с разбиением диска.

3. Если загрузка ОС USB не удалась после загрузки ядра, пересоберите initrd/ initramfsобраз

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

В моем случае, за исключением частного случая Fedora 8 (ср. пункт 0 ), проблему решил пересобрав образ initrd. В зависимости от вашего дистрибутива и того, насколько он недавний, этот образ также может иметь префикс initramfs, а не initrd. Независимо от имени, цель файла одна и та же :наличие временной файловой системы во время загрузки перед отключением фактической файловой системы. Если этот файл поврежден, ошибочен или отсутствует, вы не сможете правильно загрузить свою систему.

Будем надеяться, что любой дистрибутив Linux поставляется с утилитой для восстановления этого образа. Из моего (короткого )опыта:

  • Старые дистрибутивы:mkinitrd
  • Последние дистрибутивы Ubuntu:mkinitramfs
  • Последние дистрибутивы Fedora:dracut

ПРИМЕЧАНИЕ.:при (повторном -)построении образа каждая утилита будет учитывать файл /etc/fstab. Воспользуйтесь этим, чтобы уже связать раздел подкачки с вашей ОС USB. В /etc/fstabвы можете использовать UUIDдля обозначения раздела, поэтому используйте fdiskи blkid, чтобы получить UUID нужного раздела подкачки и соответствующим образом обновить /etc/fstab.

Чтобы использовать одну из трех перечисленных мной команд для перестроения образа, вам нужно сначала chrootвойти в ОС, для которой вы хотите перестроить образ initrd/ initramfs.В основном я придерживаюсь того же подхода, что и в этом руководстве , которое заключается в монтировании раздела операционной системы с ошибками (, т. е. одной из наших ОС USB )на вашем хост-компьютере и использовании нескольких команд привязки. правильно chrootв нем. При необходимости вы можете создать подпапки -в папке /mnt. В моем случае для chroot в мою Fedora 14 я использовал следующие команды:

sudo mkdir /mnt/usb_f14
sudo mount /dev/sdb3 /mnt/usb_f14
sudo mount --bind /proc /mnt/usb_f14/proc
sudo mount --bind /dev /mnt/usb_f14/dev
sudo mount --bind /sys /mnt/usb_f14/sys
sudo chroot /mnt/usb_f14

Не забудьте заранее проверить, какой /dev/sdXваш раздел с fdisk. После того, как вы внедрились в ОС USB, перейдите в папку /boot. Если вы хотите, переименуйте уже существующее изображение (, если есть ), чтобы сохранить его (, вы можете просто добавить к нему префикс old-, например ), прежде чем создавать новое изображение. Затем запустите

ls /lib/modules/

Здесь будут перечислены различные ядра, установленные на вашей ОС USB (большую часть времени, у вас должно быть только одно ). Действительно, любая из перечисленных выше команд требует, чтобы вы предоставили ядро, которое вы будете использовать для сборки образа. Затем, в зависимости от утилиты, к которой у вас есть доступ, вы должны запустить одну из трех следующих команд (по my-kernel, я обозначаю одно из ядер, перечисленных как ls /lib/modules/; обратите внимание, что вы можете использовать другие имена для ваших изображений, если хотите)

  • mkinitrd initrd-my-kernel.img my-kernel
  • mkinitramfs -o initramfs-my-kernel.img my-kernel
  • dracut initramfs-my-kernel.img my-kernel

В зависимости от вашей ОС могут появляться сообщения об отсутствующих модулях. Пока образ создан, вы можете их игнорировать (Я получил некоторые из них при восстановлении образа для моей Fedora 14, и он по-прежнему загружается нормально ).

Также обратите внимание, что если вы заменяете старый образ напрямую, вам, возможно, придется добавить флаг в свою команду, чтобы принудительно перезаписать. Например, к dracutследует добавить --force. Обратитесь к вашему руководству для других команд. Когда вы закончите, размонтируйте раздел ОС USB и перезагрузите компьютер с последовательностью загрузки, настроенной на загрузку с USB. Теперь ваша ОС USB должна загружаться нормально.

Наконец,не забудьте записать имя, которое вы дали новому изображению, если оно отличается от имени исходного изображения, потому что вам нужно будет обновить файл grub.cfg, чтобы принять во внимание новое изображение.

4. Дважды -проверьте разделы на виртуальных машинах

Если вы не можете сами выбрать раздел при установке одной из ваших целевых ОС на виртуальную машину (, это случилось со мной с Fedora 14 ), возможно, вы получите два ext4раздела, с маленьким, содержащим папку /boot, и другим, содержащим остальную часть файловой системы. Если это произойдет, клонируйте больший раздел с помощью метода, описанного jc __, затем снова загрузите свою виртуальную машину, скопируйте куда-нибудь (, например, на дополнительный USB-накопитель )папку /boot, а затем поместите ее в раздел, который вы клонировали после его восстановления. Не забудьте впоследствии обновить файл /etc/fstabперед повторным -созданием образа initrd(см. 3 ), так как исходный файл, скорее всего, по-прежнему будет содержать два раздела ext4вместо одного.

5. Простой выход из USB GRUB

Хотя jc __рекомендует использовать super_grub2_disk_hybrid_2.02s9.isoи memdiskдля доступа ко всем параметрам на хост-компьютере, вы также можете просто добавить этот простой пункт меню в свойgrub.cfg:

menuentry 'Continue to host machine' {
    exit
}

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

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

1
27.01.2020, 23:32

Поместите это в место для ответа, потому что оно длинное и многословное. Если необходимы исправления ответа или дополнения, отредактируйте ответ и удалите это.

«grub.cfg (, который я поместил в раздел Fedora 24, поэтому /dev/sda2/»

«FC24 — это /dev/sda2»

«FC8 — это /dev/sda3»

Хорошо, давайте сделаем что-нибудь, чтобы помочь в устранении неполадок.

показать расположение разделов USB

Графический интерфейс GParted илиsudo fdisk -l

показать номера UUID разделов USBblkid

показать команду, используемую при установке grub. grub-installиgrub-mkimage

Виртуальная машина, использованная на шаге 5, загружалась с жесткого диска (виртуального жесткого диска )или с работающей ОС. Какая ОС использовалась.

"Я неправильно восстановил свои разделы или я могу "спасти" обе ОС?"

Я думаю, что это не проблема восстановления, а проблема установки grub.

Глядя на grub.cfg.

Entry:
Fedora (4.5.5-300.fc24.x86_64) 24 (Workstation Edition)
search... --hint='hd0,msdos1'  913f30c2-4a22-44eb-a93d-9fad95764f5d
first HD and first partition. --hint='hd0,msdos1
partition UUID 913f30c2-4a22-44eb-a93d-9fad95764f5d
This tells us: /dev/sda1 and was probably the HD not USB. 
Expected.

Entry:
Fedora release 24 (Twenty Four) (on /dev/sda2)
search... --hint-bios=hd0,msdos2 d4be737a-c4ea-44cd-a22d-781086854ec8
first HD and second partition --hint-bios=hd0,msdos2
partition UUID d4be737a-c4ea-44cd-a22d-781086854ec8
This tells us: /dev/sda2 and is the second partition on the HD not USB.
Not expected if this OS is on the USB.
Expecting second HD (the USB) NOT the same as the booted OS. Perhaps /dev/sdb2

Entry:
Fedora release 8 (Werewolf) (on /dev/sda3)
search... --hint-bios=hd0,msdos3  8bc6e37c-53b1-4fe9-b242-5b0b9c8c575e
first HD and 3rd partition. --hint-bios=hd0,msdos3
partition UUID 8bc6e37c-53b1-4fe9-b242-5b0b9c8c575e
Not expected if this OS is on the USB.
Expectiong second HD (the USB) NOT the same as the booted OS. Perhaps /dev/sdb3

Причина, по которой мы ожидаем любой жесткий диск, кроме первого (или того, на котором установлена ​​основная ОС ), заключается в том, что компьютер загружается из ОС, (предположительно с жесткого диска, а не из ISO )., USB-накопитель будет вставлен и станет следующим доступным жестким диском. /dev/sdX X — это буква диска.

На данный момент вы взаимодействуете с загруженной ОС, хостом. USB-накопитель подключен. Хост-ОС может автоматически смонтировать USB. Это нормально, если чтение/запись mount. Я предпочитаю размонтировать (НЕ извлекать )USB и перемонтировать в определенных местах.

Проверьте назначение USB-устройства. sudo fdisk -lВы знаете макет и размер USB, поэтому получите информацию /dev/sdX.

ИЛИ

Отключите USB от хоста.

командаdmesg

Снова подключите USB.

командаdmesg

Должен сообщить вам о новом устройстве и назначении /dev. СДХ.

Смонтируйте разделы USB в предварительно заданных точках монтирования.

пример:

sudo mount /dev/sdX /media/f24

sudo mount /dev/sdx /media/f8

/media/f24 -- the root of the Fedora24
/media/f8 -- the root of the Fedora8

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

sudo grub-install --recheck --boot-directory=/media/f24/boot /dev/sdX

--boot-directory=/media/f24/boot

Здесь загрузчик будет искать файл grub.cfg. Кстати, тот, что уже есть, нас туда не доставит.

/dev/sdX

Это USB-накопитель. Информация собрана сверху. Здесь нет информации о разделе, только устройство.

Создайте новый файл grub.cfg, который перезапишет файл, созданный при установке Fedora24.

sudo grub-mkconfig --output=/media/f24/boot/grub/grub.cfg

Это перезапишет файл grub.cfg из установки Fedora24.

Проверьте новый файл grub.cfg.

Должна быть информационная запись операционной системы хоста.

Должна быть операционная система USB-накопителя. Они будут на другом устройстве, отличном от ОС хоста. /dev/sdX.

Также проверьте с помощью команды:blkid

Номера UUID для разделов USB-накопителя должны совпадать с номерами UUID в новом файле grub.cfg.

ПРИМЕЧАНИЕ:Назначение /dev/sdX будет неверным при загрузке USB. Это нормально. Номер раздела UUID по-прежнему «найдет» правильный раздел и загрузит правильную ОС. Позже это будет изменено в пользовательском файле grub.cfg.

также проверьте правильность загрузки файлов grub.cfg при загрузке с USB.

После приведенных выше команд измените цвета в новом файле grub.cfg

Добавьте строки:

# Set menu colors
set menu_color_normal=red/black
set menu_color_highlight=light-gray/red

Угадывание между строк:

### END /etc/grub.d/01_users ###
and
### BEGIN /etc/grub.d/10_linux ###

Когда вы видите меню grub, окрашенное в разные цвета, значит, оно загружено правильно. grub-installправильно.

Не зацикливайтесь на этой части, вы можете просто изменить название пунктов меню...

Если новый файл grub.cfg проходит проверку UUID, значит grub-mkconfigверен.


Устранение неполадок, часть 2.

Глядя на пункт меню Ferora 24...

GRUB устанавливает root тремя разными способами. (НЕ корень ядра Fedora.это что-то другое.)

1.set root='hd1,msdos2'

Это «жесткий» набор root. 2-й. ездить на 2-м. раздел.

«Хитрость» заключается в том, что первый диск может меняться при каждой загрузке. То, что когда-либо устройство исследует первым, становится первым.

2.search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos2 --hint-efi=hd1,msdos2 --hint-baremetal=ahci1,msdos2 d4be737a-c4ea-44cd-a22d-781086854ec8

Эта запись внутри ifв основном говорит, что нам нужен раздел с UUID xxx, но начните искать со 2-го. водить 2-й. раздел.

3.search --no-floppy --fs-uuid --set=root d4be737a-c4ea-44cd-a22d-781086854ec8

Это также находится внутри оператора ifи говорит, что ищите раздел с UUID xxx везде, где вы можете искать, кроме флоппи-дисковода.

Мы хотим использовать синтаксис3rd .

ПРИМЕЧАНИЕ:GRUB считает диск с 0 (hd0 -hdn )и считает разделы с 1 (msdos1 -msdosn ). GRUB2 руководство .

"мне кажется, что здесь может быть виноват initrd/initiramfs"

Да я тоже так думаю, но не сами файлы а где GRUB файлы ищет.

GRUB пытается загрузить ядро ​​Linux из /boot/vmlinuz-0-rescue-731a5ce6cbc840ad9cad96ddf48e5db8или, точнее,GRUBroot/boot/vmlinuz-0-rescue-731a5ce6cbc840ad9cad96ddf48e5db8

GRUBroot = раздел d4be737a -c4ea -44cd -a22d -781086854ec8. Если мы поставим его правильно.

initrd такой же.

GRUBroot/boot/initrd-2.6.23.1-42.fc8.img

Кстати,:В вашем первом файле grub.cfg Fedora24 загружала другое ядро ​​и initrd. Возможно, вы захотите снова использовать их из-за производственного ядра, языка и т. д.

linux /boot/vmlinuz-4.5.5-300.fc24.x86_64 root=UUID=d4be737a-c4ea-44cd-a22d-781086854ec8 ro rhgb quiet LANG=fr_BE.UTF-8

initrd /boot/initramfs-4.5.5-300.fc24.x86_64.img

Убедитесь, что файлы все еще существуют.

"/dev/root не найден"

Да, потому что

linux /boot/vmlinuz-0-rescue-731a5ce6cbc840ad9cad96ddf48e5db8 root=/dev/sdc2

говорит, что корень ядра находится на 3-м. водить 2-й. раздел.

Давайте создадим новую запись, изменив grub.cfg с помощью редактирования текста. Удалите остальные после того, как это сработает.

menuentry 'Fedora 24 on USB drive' {
    insmod part_msdos
    insmod ext2

    ## set the GRUB root using UUID only.
    search --no-floppy --fs-uuid --set=root d4be737a-c4ea-44cd-a22d-781086854ec8

    ## is F24 root somewhere else?
    ## Probably not.. remove kernel switch root=/dev/sdc2
    linux /boot/vmlinuz-0-rescue-731a5ce6cbc840ad9cad96ddf48e5db8
    initrd /boot/initramfs-0-rescue-731a5ce6cbc840ad9cad96ddf48e5db8.img
    ## I think you want these instead if the files still exist. Make adjustments by adding and removing comments ##
    ## commented out
    # linux /boot/vmlinuz-4.5.5-300.fc24.x86_64 root=UUID=d4be737a-c4ea-44cd-a22d-781086854ec8 ro rhgb quiet LANG=fr_BE.UTF-8
    # initrd /boot/initramfs-4.5.5-300.fc24.x86_64.img  
}

и

menuentry 'Fedora 8 on USB drive' {
    insmod part_msdos
    insmod ext2

    ## set the GRUB root using UUID only.
    search --no-floppy --fs-uuid --set=root 8bc6e37c-53b1-4fe9-b242-5b0b9c8c575e

    ## is F8 root somewhere else?
    ## Probably not.. remove kernel switch root=LABEL=/
    ## not familure with this switch, but removed.
    linux /boot/vmlinuz-2.6.23.1-42.fc8 ro rhgb quiet
    initrd /boot/initrd-2.6.23.1-42.fc8.img
    ## I think you want these instead if the files still exist. Make adjustments by adding and removing comments ##
    ## commented out    
    # linux /boot/vmlinuz-2.6.23.1-42.fc8 ro root=LABEL=/ rhgb quiet
    # initrd /boot/initrd-2.6.23.1-42.fc8.img   
}

Обновление не требуется, просто перезагрузите компьютер с USB-накопителя.

Помните, что после того, как вы заработаете, вы захотите изменить etc/grub.d/40_custom, чтобы обновление ядра Fedora проверило и сгенерировало правильный новый пункт меню GRUB.

Не факт, что это возможно. Возможно, вам придется вручную обновлять grub.cfg каждый раз при обновлении ядра Fedora.

linux /boot/vmlinuz-4.5.5-300.fc24.x86_64 root=UUID=d4be737a-c4ea-44cd-a22d-781086854ec8 ro rhgb quiet LANG=fr_BE.UTF-8

initrd /boot/initramfs-4.5.5-300.fc24.x86_64.img

0
27.01.2020, 23:32

Теги

Похожие вопросы