Якщо я скопіюю завантажувальний USB-накопичувач на інший USB, чи створить це повторюваний завантажувальний диск?


37

Я думав, що це якесь тупе питання, але пошук у Google, схоже, вказує на те, що неможливо навіть скопіювати / вставити дані на завантажувальний диск на інший USB? Але навіть якщо нам вдалося скопіювати, чому б це не працювало? (тобто створюється дублікат завантажувального диска)


2
Що ви маєте на увазі під "копіювати / вставляти"? Очевидно, що ви повинні скопіювати частини, які фактично роблять його завантажувальним приводом (наприклад, завантажувачем тощо), але немає причин, щоб це не працювало.
Йорг W Міттаг

Відповіді:


56

Просто копіювання файлів не зробить завантажувальний привід. Це не тільки файли на флеш-накопичувачі USB, які роблять його завантажуваним, але й конфігурація таблиці розділів , метадані про організацію вмісту диска, який повідомляє ПК, чи він завантажується , і чи це MBR чи GPT .

Як зазначається на сайті cyberciti.biz :

Кожен диск і розділ мають на ньому певні рядки підпису та метаданих / магії. Метадані, які використовується операційною системою для налаштування дисків або приєднання драйверів та монтажу дисків у вашій системі.

Однак ви можете клонувати флешку за допомогою ряду інструментів, таких як dd , EaseUS Todo Backup та чудові та відкриті джерела Clonezilla та Rufus . (Дякую Алексу за нагадування про ДД та Руфус).

Існують навіть електронні пристрої, які автоматично копіюють флешки .


15
Насправді вам навіть не потрібно dd: просто cpбуде виконати роботу - просто не забудьте використовувати її на вузлі пристрою замість вмісту файлової системи.
Руслан

А, це дивно. А може, ні. Але мені принаймні.
Йорг W Міттаг

1
'cat <source> призначення' буде працювати добре, якщо припущення не є джерелом, ніж джерело.
ysdx

@JoL Ви не бачили коментаря Йорґа (тепер видалено). Моя відповідь на його твердження, що cpпросто скопіював би вузол пристрою. Щоб запобігти плутанині, зараз я також видалив свій коментар.
Руслан

21

Копіювання лише справляється з файлами у форматованих розділах. Ви не зможете робити спеціальні речі, необхідні для процесу завантаження, наприклад встановлення прапорів завантаження, написання завантажувача або інколи навіть копіювання звичайних файлів у потрібне місце (читати: сектор) у розділі та встановити атрибути файлів. / дозволи. Якщо вам не пощастить, щоб ці речі були доступні, завдяки попередньому створенню завантажувального диска, інструменту форматування, який записує завантажувач до MBR тощо, вам потрібно буде зробити більше кроків, щоб зробити диск завантажувальним


Зокрема, під час завантаження в режимі BIOS BIOS шукає перший сектор (MBR), щоб перевірити, чи є дійсна підпис завантаження 0xAA55 . Якщо так, то він завантажує цей сектор і передає керування завантажувачу в MBR. MBR описує конфігурацію розділу, тому він не може лежати всередині розділу та не є тим, що ви можете скопіювати за допомогою звичайних інструментів.

Крім того, оскільки MBR занадто малий, щоб бути корисним, більшість сучасних завантажувачів розбиває процес завантаження на кілька етапів , при цьому завантажувальний код у MBR завантажує наступний етап. Подальші внутрішньоетапні дії знову часто ставляться в регіонах поза перегородками . Деякі можуть помістити його в EBR , але груба зазвичай ставить свою другу стадію в порожній області між першим розділом і MBR, що називається розривом після MBR. Ось чому, якщо не вирівняти розділи належним чином, grub не зможе поставити код завантаження, що призведе до помилки вбудовування

Багато завантажувачів, таких як LILO або старі завантажувачі Windows / DOS, також містять інформацію про жорсткий код у MBR, як, наприклад, наступний етап або системні файли. Вони не працюють, читаючи дані розділів, але замість цього читають якийсь жорсткий кодований сектор, оскільки для розбору файлової системи знадобиться занадто багато коду, який дуже важко видавити в крихітні пробіли, такі як розрив MBR або пост-MBR. Навіть grub підтримує таке жорстке кодування . Це означає, що деякі системні файли повинні знаходитись у точному місці по секторах, чого ви також не можете досягти за допомогою звичайної копії. Ось чому ви бачите "нерухливі системні файли" під час роботи дефрагментатора Windows або скорочення файлових систем, що іноді насправді не вірно, адже це просто те, що Windows занадто боїться переміщати ці файли, хоча сучасні завантажувачі набагато розумніші і не цікавляться подібними речами.

Зрештою, вам також потрібно встановити розділ завантаження як активний, щоб дозволити завантажувачу знати, що для завантаження. Це потрібно зробити інструментом розділення або шестигранним редагуванням вручну, оскільки він також розміщений поза зоною розділу.


В УЄФІ все набагато простіше. Він знає про файлові системи FAT (і навіть більше файлових систем щодо нестандартних реалізацій), тому завантажувальні файли зберігаються в системному розділі EFI, AKA ESP . UEFI завантажує * .efi додатки в ESP, які потім завантажуватимуть операційні системи.

Прошивка UEFI підтримує завантаження із знімних пристроїв зберігання даних, таких як флеш-пам'яті USB. Для цього потрібно відформатувати знімний пристрій за допомогою файлової системи FAT12, FAT16 або FAT32, тоді як завантажувач потрібно зберігати відповідно до стандартної ієрархії файлів ESP або забезпечуючи повний шлях завантажувача до системи менеджер завантаження.

Отже, вам потрібно просто скопіювати файли * .efi в ESP і помістити системні файли у правильну папку. Однак існує ще невелика проблема, оскільки розділ FAT, що містить файл * .efi, повинен бути позначений як ESP у таблиці MBR або GPT за межами розділів, що неможливо зробити, скопіювавши вище. Зокрема, тип розділу повинен бути змінений з 0Ch / 0Bh / незалежно від EFh у MBR та C12A7328-F81F-11D2-BA4B-00A0C93EC93B у GPT, оскільки ESP насправді не FAT12 / 16/32 , а незалежна файлова система сімейство файлових систем FAT


І все ще існує багато інших схем розділення, таких як дисковий диск BSD або APM, який для завантаження потрібно змінити по-різному. Або USB-накопичувачі, можливо, взагалі були відформатовані без таблиці розділів (AFAIK Windows робить це за замовчуванням), тому зробити її завантажувальною буде інакше. Але застосовується та сама межа: вам потрібно змінити неподілені ділянки


1
Це правильна відповідь.
Маргарет Блум

Це найбільш ретельно відповідь, так, але я не вважаю , що це більш правильно , ніж загальноприйнятому відповідь, який ІМО відповідає спрощено ставити питання простим способом.
Ян Кемп

@IanKemp Проблема з прийнятою відповіддю полягає не в тому, що це просто (це добре), а в тому, що технічно неоднозначно в кращому випадку :)
Маргарет Блюм

Якщо ви позначите гучність USB-накопичувача як активну - використовуючи утиліту "cmpart" утиліти "diskpart" або будь-який третій менеджер розділів - скопіювавши вміст Windows vista / 7/8/10 ISO-зображення, палиця стає завантажувальним пристроєм для Windows; під час завантаження не відбувається жодна штукатурка або фурнітура. Тож очевидно, що після позначення палиці як активної, все, що вам потрібно, - це невеликий файл завантажувального файлу (bootmgr та bootmgr.efi на windows, я думаю) на палиці; немає необхідності в складних інструментах. Я очікував би простої процедури командного рядка в Linux, набагато простіше, ніж Windows.
Red.Wave

3

Традиційно для завантаження BIOS потрібен спеціальний невидимий маркер. Ось кілька прикладів :

  • Якщо MBR-розділений ("жорсткий диск"), то в таблиці розділів
  • Якщо дискета / superfloppy ("ZIP-накопичувач"), в основному весь диск відформатований без таблиці розділів, то в межах перших кількох байтів
  • Якщо CD, то El Torito

У цих випадках ви не можете просто копіювати файли. Отриманий привід буде незавантаженим, оскільки в ньому відсутні ці спеціальні маркери.

Однак завантаження UEFI є особливим, розумнішим і спеціально вирішує ці проблеми. Як завжди, я рекомендую прочитати цю публікацію в блозі для спрощеного букваря до UEFI. Зверніть особливу увагу на резервний розділ завантаження. Це також обговорюється трохи детальніше тут .

Все, що вам потрібно для цього, - це файл у певному шляху в розділі, який прошиває програмне забезпечення. Для оптимальної сумісності 1 , так, це має бути розділ у форматі FAT32, позначений як системний розділ EFI на диску з розділеним GPT. Однак більшість вбудованих програм також шукатиме (поодинокі) розділи на розділених MBR і нерозподілених (суперфлоппі) дисках.

Це означає, що все, що вам дійсно потрібно для завантаження UEFI, є FAT32 єдиний розділ 1, що містить резервний запис завантаження. У архітектурі x86_64 це означає, що вам просто потрібен \EFI\BOOT\BOOTx64.EFIфайл. Ви можете просто скопіювати з однієї флешки на іншу, включаючи цей файл, і все має працювати.


1 FAT32 та GPT вимагаються стандартом. MBR та superfloppy - це не AFAIK, але підтримка їх досить універсальна серед апаратних засобів настільних ПК. Ноутбук трохи езотеричніший; планшети - це підкидання, а Mac EFI - унікальний.

2 Стандарт UEFI вимагає підтримки FAT32. Деякі вбудовані програми також можуть підтримувати NTFS (хоча це далеко не гарантовано), і ви фактично можете вбудувати драйвер NTFS у FAT32 ESP.


0

Це залежить від того, що ви маєте на увазі під «копією».

Скопіюйте та вставте в GUI операційної системи? Ні, це не буде працювати - деякі файли, що потребують завантажувального USB, вважатимуться "прихованими" / невидимими та не скопійовано.

Існують типи копій, які будуть працювати. Це часто називають «зображенням» нового USB, щоб відрізняти від «копіювання» його вмісту. Найпоширеніший спосіб зробити це інструмент командного рядка, але графічні параметри доступні, якщо вони потрібні.

Це повинно бути достатньою фоном для того, щоб ваш пошук був потрібний!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.