Ограничьте их учетную запись root с помощью SELinux (например, semanage user ...
) и установите политику, запрещающую доступ к файлу для назначенного пользователя SELinux. Затем через cron снова снимите ограничения с их аккаунта. Без шифрования, просто, у них будет учетная запись root, но они не смогут ничего делать с файлом.
Как установить несколько дистрибутивов Linux на USB-накопитель?
Предположим:
Инструменты:
archive/bios/memdisk
Обзор:
Шаг 1
Подготовьте инструменты и определите, какие операционные системы нужно установить на USB, какой размер разделов и будет ли использоваться раздел подкачки.
Общий объем USB-накопителя составляет 32 ГБ.
Разделы, которые мы настроим.
Раздел NTFS 16 ГБ для совместимости с Microsoft.
32-битный сервер Ubuntu14 4 ГБ ext4 с разделом подкачки 1 ГБ
64-битный сервер Ubuntu16 8 ГБ ext4 с разделом подкачки 4 ГБ
ПРИМЕЧАНИЕ.:Если вы не используете ждущий или спящий режим ни на одной из ОС, они могут совместно использовать один раздел подкачки или даже использовать файл подкачки в каждом из разделов ОС.
Схема раздела:
ПРИМЕЧАНИЕ.:BIOS и MBR будут видеть только 4 основных раздела. Используйте расширенный раздел вместо одного основного раздела, чтобы обойти это ограничение.
Шаг 2
Подготовьте USB-накопитель.
Создайте новую виртуальную машину с именем «test». Для этой виртуальной машины не требуется и не требуется жесткий диск. Это должно сделать USB-накопитель /dev/sda
. Это упростит задачу в дальнейшем.
Подключите ISO-образ Parted Magic к виртуальной машине и загрузитесь с ISO-образа.
Подключите USB-накопитель и «передайте на виртуальную машину»
Убедитесь, что USB виден в виртуальной машине, и запишите номер устройства.
Запустите Редактор разделов со значка на рабочем столе.
USB-накопитель в моей настройке —:/dev/sda
Обнуление таблицы разделов. Это удалит ВСЮ информацию на этом устройстве. Сначала скопируйте любые данные, которые хотите сохранить.
dd if=/dev/zero of=/dev/sda bs=512 count=4
Обновить список дисков в GParted (ctrl+R)
устройство --> создать таблицу разделов «msdos»
Создать разделы:
ПРИМЕЧАНИЕ.:Я создал раздел NTFS последним, чтобы «использовать» оставшееся пространство.
Применить изменения. Должно выглядеть что-то близкое к этому. Обратите внимание, что объем моего USB-накопителя составляет 1 ТБ, поэтому мой раздел NTFS намного больше.
Шаг 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:
Шаг 4
Восстановите образы ОС на USB-накопитель.
Вернитесь к «тестовой» ВМ, к которой не подключен виртуальный диск, и загрузитесь с pmagic_2013_08_01.iso
.
Передайте USB-накопитель на «тестовую» виртуальную машину.
Запустите редактор разделов с помощью значка на рабочем столе. Мы вернулись сюда. См. Скриншот.
Сопоставьте ОС с разделами USB с разделами образа.
Ubuntu14:
Ubuntu16:
ПРИМЕЧАНИЕ:Эта версия 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:
Перезапустите 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
Настройка установленных ОС
/etc/fstab
/etc/fstab
Проверь!
Предоставленные ответы содержат полезную информацию и дают представление о процессе, который я считаю очень важным (особенно для авто -дидактических типов, которые описывают многих из нас здесь, в SE ).
Тем не менее, есть бесплатный проект, который более или менее достигает чего-то подобного для тех, кто приходит сюда и просто хочет сделать что-то подобное, если не то же самое.
https://www.pendrivelinux.com/yumi-multiboot-usb-creator/
Имя глупое. Графика сырная. Инструменты работают, и работают очень хорошо. По крайней мере, исходный код, который они предоставляют, может вам помочь.
Несколько советов и комментариев к туториалу 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
mkinitramfs
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, не стесняйтесь комментировать этот пост, чтобы указать на ошибки или неточные утверждения.
Поместите это в место для ответа, потому что оно длинное и многословное. Если необходимы исправления ответа или дополнения, отредактируйте ответ и удалите это.
«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