Проблеми з установкою початкового завантажувача на флеш-накопичувач

У статті містяться 5 питань та відповідей за наступними темами:

1. Очищення mbr флешки Windows
2. Конвертація файлу ISO в гібридний ISO-файл (тільки Linux)
3. Створення завантажувальної флешки з збереженням змін (Linux, Windows, Mac OS X)
4. Створення мультизагрузочной флешки (Windows)
5. Відновлення таблиці розділів і завантажувача mbr (Hiren's BootCD).

Для застосування всіх наведених у статті рішень (крім 2 — працює лише у Linux) потрібні операційні системи Microsoft Windows і Linux (або Mac OS X), утиліти Windows USB DVD Download Tool і RMPrepUSB (Windows), dd (Linux, Mac OS X), isohybrid (Linux), Unetbootin (Windows, Linux, Mac OS X), md5sum (Linux, Mac OS X), порожня флешка об'ємом не менше 8 Гб, а також «рятувальна» флешка Hiren's BootCD 15.2.

1. Запитання. Коли я влаштувався на нову роботу, перші дні були присвячені навчанню. На навчанні всім учням було видано з жорсткого диска, який містить інструкції та програмне забезпечення. В одній з інструкцій було наведено приклад використання утиліти Windows 7 USB/DVD Download tool. З її допомогою в цьому прикладі на флеш-накопичувач записувався спеціальний ISO-образ операційної системи Windows 7. На практиці цей спосіб не працював. Що робити?

Відповідь. Звичайно, проводити діагностику і вирішувати проблему. Вона може бути в несправному ISO-файлі (перевірити його допоможе утиліта md5sum), несправною флешці (відкривається вона в файловому менеджері Windows?) і неправильному коді mbr. В останньому випадку перед використанням WUDT корисно буде очистити mbr. Це можна зробити за допомогою командного рядка, використовуючи наступні команди:

diskpart
list disk
select disk N
clean
create partition primary
select partition 1
active
format FS=FAT32 QUICK
assign
exit

Тут N — номер флеш-накопичувача в списку всіх пристроїв, які відображаються за допомогою команди list disk

2. Я захотів встановити на домашній комп'ютер ще одну операційну систему — Mageia4.1. Для цього я скачав з офіційного веб-сайту ISO-образ CD диска і записав його на флешку з допомогою команди dd. Але при спробі завантажити з її допомогою комп'ютера з'являється повідомлення про помилку: isolinux.bin missing or corrupt.

Відповідь. Схоже, скачаними Вами ISO-образ не є гібридним, тобто він призначений тільки для запису на CD і не підходить для запису на флеш-накопичувач. Вирішити цю проблему можна за допомогою утиліти isohybrid, що входить до складу syslinux. Вона дозволяє сконвертувати зазначений образ ISO для CD/Dvd гібридний ISO-образ з таким же ім'ям.

3. В нічну зміну буває час, коли немає роботи і немає чого робити. Щоб якось себе зайняти, я вирішив взяти з собою Linux-LiveUSB, щоб з користю використовувати вільний час (що заборонено регламентом). Записавши за допомогою команди

dd if=elementaryos-0.4-stable-amd64.20160909.iso of=/dev/sdb bs=4096, де /dev/sdb - ім'я флешки

на флешку гібридний ISO-образ ElementaryOS 0.4 'Loki', я завантажив цю операційну систему на комп'ютері. Далі я створив в каталозі Документи порожній файл, щоб дізнатися, чи збережеться він після перезавантаження, як це було з завантажувальної флешкою openSUSE 13.1 GNOME, створеної аналогічним чином, з якою я зміг не тільки створити такий файл, але і встановити необхідні програми, не зникли після перезавантаження комп'ютера. Але з Elementary OS 0.4 такий трюк не пройшов. Чи можна зробити так, щоб при використанні завантажувальної флешки з Elementary OS 0.4 зміни зберігалися також, як і у випадку використання openSUSE 13.1 GNOME? Чому в openSUSE це працює, а в Elementary OS — ні?

При першому завантаженні флешки openSUSE створюється новий розділ з назвою hybrid, що містить файлову систему, в якій зберігаються всі зміни, зроблені при роботі з LiveUSB, включаючи створені файли і встановлені програми. Elementary OS 0.4 самостійно так робити не вміє, але їй можна допомогти.

По-перше, можна створити такий розділ, використовуючи для запису iso-образу Elementary OS 0.4 на флешку утиліту Unetbootin. Для цього в ній можна вказати місце, яке використовується для збереження змін після перезавантаження (тільки для ubuntu і заснованих на ній дистрибутивів), наприклад 4096 Мбайт (див. картинку).

image
Зображення 1. Вікно Unetbootin

Другий спосіб — створити вручну на флешці другий розділ з ім'ям «casper-rw» (наприклад, за допомогою GParted) і вказати в параметрах завантаження ядра ключове слово «persistent», як це зроблено в наступному відповіді.

4. Я навчився записувати на флеш-накопичувач гібридні ISO-образу дистрибутивів ElementaryOS 0.4, Mageia4.1 і openSUSE 13.1 GNOME за допомогою команди dd, але цей спосіб не підходить для того, щоб створити мультизагрузочную флешку. Як створити таку флешку?

Відповідь. Це можна зробити, додавши нову операційну систему у меню завантаження встановленого на флешку завантажувача операційної системи. Такі завантажувачі бувають різні, також як і способи їх установки на флеш-накопичувач. За допомогою конфігураційного файлу меню завантажувача можна зробити так, щоб при виборі в меню операційної системи завантажувач передавав управління її ядра і створював тимчасову файлову систему з допомогою її початкового ram-диска, а ядро загружало операційну систему, использовуя при цьому файл iso-образу операційної системи. Для цього можна скопіювати на флешку файли iso образу ядра і початкового ram-диска цієї операційної системи. Таким чином, кількість завантажуваних з допомогою такої флешки операційних систем, які вміє завантажувати встановлений на ній завантажувач, обмежена тільки її обсягом.

Файли ядра і початкового ram-диска зазвичай можна отримати, розпакувавши їх з файлу образу iso операційної системи за допомогою архіватора. У Elementary OS, також як і в Ubuntu, вони називаються casper/vmlinuz і casper/initrd.lz

Один із способів установки завантажувача операційної системи на флешку полягає у використанні утиліти RMPrepUSB. Ця утиліта має графічний інтерфейс і працює у Windows. Вона дозволяє встановити завантажувачі grub4dos і syslinux, обнулити таблицю розділів, створити первинний розділ, відформатувати його, і навіть перевірити працездатність завантажувального флеш-накопичувача в емуляторі QEMU.

image
Зображення 2. Вікно RMPrepUSB

Для того, щоб завантажити Elementary OS 0.4 завантажувача grub4dos, встановленим за допомогою RMPrepUSB, необхідно додати в завантажувальне меню, при виборі якого починається завантаження цієї операційної системи. Для цього створюємо конфігураційний файл меню завантажувача grub4dos, який називається menu.lst, і, припускаючи, що iso-образ, файли ядра і початкового ram-диска знаходяться на флешці в каталозі elementaryos, додаємо в нього наступні рядки:

timeout 10
default 0

title Elementary OS 0.4 'Loki'
find --set-root /elementaryos/elementaryos-0.4-stable-amd64.20160909.iso
kernel /elementaryos/vmlinuz file=/cdrom/preseed/ubuntu.seed boot=casper persistent iso-scan/filename=/elementaryos/elementaryos-0.4-stable-amd64.20160909.iso splash
initrd /elementaryos/initrd.lz

title Reboot
reboot

В openSUSE файли ядра і початкового ram-диска називаються boot/i386/loader/linux і boot/i386/loader/initrd. Для додавання у завантажувальний меню запуску openSUSE 13.1 досить додати в конфігураційний файл меню перед рядком title Reboot наступні рядки (припускаючи, що iso-образ, файли ядра і початкового ram-диска знаходяться на флешці в каталозі opensuse):

title openSUSE-13.1-GNOME-Live-i686.iso
uuid () > nul
set UUID=%?%
set ISO=openSUSE-13.1-GNOME-Live-i686.iso
kernel /opensuse/linux isofrom=/dev/disk/by-uuid/%UUID%:/opensuse/%ISO% isofrom_device=/dev/disk/by-uuid/%UUID% isofrom_system=/opensuse/%ISO% loader=syslinux splash=silent quiet
initrd /opensuse/initrd

У завантажувальний меню можна додавати не тільки операційні системи, але і утиліти для перевірки оперативної пам'яті комп'ютера, поверхні жорсткого диска, скидання або зміни пароля Windows і т. п. Наприклад, можна додати виклик програми для перевірки пам'яті MemTest86+, скопіювавши в кореневий каталог флешки файл memtest.img і додавши в конфігураційний файл menu.lst перед title Reboot наступні рядки:

title memtest86+ v5.01
find --set-root /memtest.img
map /memtest.img (fd0)
map-hook
chainloader (fd0)+1
rootnoverify (fd0)
map-floppies=1

Файл memtest.img можна завантажити з веб-сайту memtest.org у откомпилированном завантажувальному iso-файлі, що містяться в zip — або gz-архіві.

5. Я використовував утиліту parted для цього, аби очистити таблицю розділів в mbr флешки, але помилково очистив таблицю розділів свого жорсткого диска. Після перезавантаження система не завантажилася. На щастя у мене виявилося кілька завантажувальних флешок, містять різні дистрибутиви Linux. Як відновити систему?

Відповідь. Цей ситуації можна було б уникнути, при виклику parted відразу вказавши пристрій, з яким Ви будете працювати, наприклад так:

sudo parted /dev/sdb

Для відновлення таблиці розділів можна використовувати утиліту TestDisk, яка входить до складу деяких «рятувальних» дистрибутивів Linux, таких як Parted Magic LiveCD або SystemRescueCD. Зараз дистрибутив Parted Magic є платним, але можна використовувати його безкоштовну застарілу версію, яка входить до складу Hiren's BootCD. У меню Hiren's BootCD вона називається «Linux based rescue environment (Parted Magic 2012-10-10)». З допомогою цих дистрибутивів можна відновити не тільки таблицю розділів, але і завантажувач mbr, використовуючи команду chroot.

Використання chroot для відновлення завантажувача Linux досить популярно і подробиці про це можна дізнатися на різних ресурсах в Інтернеті, включаючи відео на YouTube.

Використані джерела:

1. LiveUSB
2. Мультизагрузка
3. Колонка «Питання і відповіді» в російській LINUX FORMAT #203 (12/2015), #205 (3/2016) і #207 (5/2016)
4. Установка Linux з iso-образу під Windows
5. SDB:Create a Live USB stick Windows using
6. 20 — Add MEMTEST86+ memory test program to your grub4dos menu.lst file
7. LiveCD/Persistence
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.