Saya ingin memahami apa yang sedang terjadi
Pengembang Rufus di sini.
Betapa banyak orang yang gagal memahaminya, karena ISO Linux menerapkan metode ini, tetapi ini pada dasarnya adalah PERETASAN UTAMA YANG DISEBUT 'ISOHYBRID' , adalah bahwa, dalam banyak kasus, Anda tidak bisa begitu saja mengambil image ISO dan menyalinnya byte demi byte ke drive USB, dan berharap itu juga boot.
Itu karena format ISO dan sistem file dasar yang digunakannya (ISO9660
atau UDF
) dirancang untuk boot optik, yang benar-benar berbeda dari HDD biasa atau boot USB. Untuk satu hal, media optik, dan karenanya gambar ISO (biasa), tidak memiliki tabel partisi, yang (biasanya) penting untuk boot HDD atau USB, dan mereka juga (biasanya) tidak memiliki catatan Boot Master, a.k.a. MBR, yang penting untuk booting BIOS.
Artinya, jika Anda membuat salinan 1:1 dari biasa ISO, seperti Windows one, ke disk, dan coba boot, inilah yang akan terjadi:
- Sistem BIOS atau sistem UEFI dalam mode Legacy/CSM tidak akan melihat MBR apa pun, dan terutama tidak akan melihat
0x55
0xAA
urutan dalam 2 byte terakhir dari MBR yang menunjukkan bahwa disk dapat di-boot oleh BIOS. Oleh karena itu disk tersebut tidak dapat di-boot dalam mode BIOS. - Sistem UEFI (biasanya) tidak akan me-mount
UDF
atauISO9660
partisi dari disk atau media flash drive, karena meskipun memiliki driver untuk sistem file ini, hasil disk yang Anda buat akan kehilanganMBR
atauGPT
tabel partisi. Saat mem-boot disk biasa, UEFI dirancang untuk mencari partisi terlebih dahulu, lalu mencari bootloader (mis./efi/boot/bootx64.efi
) pada partisi tersebut. Jadi jika tidak adaMBR
atauGPT
tabel partisi pada media, yang akan menjadi kasus untuk ISO reguler , maka tidak masalah jika ISO berisi file bootloader, karena firmware UEFI tidak akan dapat memasang partisi tempatnya berada.
Jadi, apa yang dilakukan oleh utilitas seperti Rufus saat membuat media disk yang dapat di-boot dari Windows ISO, yang merupakan gambar media optik yang sepenuhnya standar, adalah:
- Buat tabel partisi, baik
MBR
atauGPT
sesuai dengan apa yang dipilih pengguna, dan buat setidaknya satu partisi, yang biasanya akan menggunakanFAT32
atauNTFS
sebagai sistem file (perhatikan bahwa ia menggunakan sistem file yang sama sekali berbeda dari yang digunakan ISO). - Jika
MBR
digunakan, sedikit kode diMBR
yang menempatkan pemuat boot sekunder, padaMBR
yang relevan partisi, yang dirancang untuk memulai eksekusi kernel Windows, dalam mode disk, dari partisi tersebut. Oh, dan itu juga memastikan bahwa0x55
0xAA
penanda boot ditambahkan di akhirMBR
sehingga BIOS melihat disk sebagai bootable. Kemudian itu juga menyalin konten ISO keFAT32
atauNTFS
partisi. - Jika
GPT
digunakan, Rufus memverifikasi bahwa memang ada file bootloader UEFI, seperti/efi/boot/bootx64.efi
(yah, sebenarnya itu sebelum Anda memungkinkan Anda untuk memilih GPT, karena tidak ada gunanya mencoba membuat drive yang dapat di-boot GPT jika tidak ada bootloader UEFI) dan kemudian menyalinnya, bersama dengan file ISO lainnya, biasanya keFAT32
partisi, sejak boot dariFAT32
partisi adalah persyaratan wajib UEFI (tapi bukan berarti UEFI tidak bisa boot dariNTFS
atauexFAT
jika Anda memiliki driver UEFI yang relevan, yang dapat berguna jika Anda memiliki ISO Windows dengan file yang lebih besar dari 4 GB, karena FAT32 tidak dapat menampung file tersebut).
Sekarang, hal di atas hanya berfungsi ketika bootloader sekunder (yaitu yang berasal dari Windows dan yang tidak dimodifikasi oleh Rufus) dirancang untuk mendukung keduanya boot optik dan reguler, yang biasanya berarti keduanya harus menangani UDF
atau ISO9660
dan FAT32
atau NTFS
sistem file, serta perbedaan lain yang muncul saat mem-boot dari disk vs dari optik. Namun Microsoft memang mendesain bootloadernya tepat untuk itu, yang merupakan hal cerdas untuk dilakukan , karena, jika sistem target Anda adalah UEFI, itu berarti Anda (biasanya, selama masalah ukuran file maksimum 4 GB FAT32
tidak mendukung kepalanya yang jelek) tidak memerlukan utilitas untuk mengonversi ISO menjadi USB yang dapat di-boot, tetapi Anda dapat memformat USB itu ke FAT32 dan menyalin file ISO ke dalamnya (salinan file, bukan salinan byte), dan Anda memiliki media yang dapat di-boot.
Dan sekarang setelah kita melalui semua hal di atas, saya bisa masuk ke kata-kata kasar dan jelaskan mengapa saya percaya bahwa pengelola distro Linux, yang biasanya lebih pintar dari itu, sebenarnya merugikan pengguna mereka, bahkan saat mereka mencoba membantu mereka:
Hampir semua distro Linux terbaru menggunakan HACK UTAMA disebut "IsoHybrid", di mana seseorang berhasil menemukan cara untuk membuat ISO9660
gambar optik menyamar sebagai gambar disk biasa, dengan tabel partisi, sebuah MBR
dan semuanya... Dengan kata lain, sebagian besar ISO Linux yang Anda temukan saat ini menyalahgunakan sistem file ISO9660 untuk membuatnya terlihat seperti sesuatu yang tidak pernah dirancang untuk terlihat seperti:disk ganda dan gambar optik.
Jelas, tujuannya adalah untuk membuat ISO yang juga bisa digunakan dengan dd
perintah, bahkan sebagai ISO seharusnya tidak pernah bisa bekerja seperti itu. Dan saya setuju bahwa, secara teori, ini kedengarannya luar biasa, karena dapat menggunakan satu gambar untuk penggunaan yang benar-benar berbeda seharusnya bagus untuk pengguna, tetapi dalam praktiknya, hal ini menyebabkan masalah yang sering diabaikan:
- Banyak pengelola distro Linux tidak mau repot menggunakan sistem file sekunder yang dapat dipasang oleh Windows (misalnya, mereka akan menggunakan
ext
sebagai sistem file "sekunder" di atasISO9660
), yang artinya banyak pengguna Windows, yang membuat bootable drive untuk menggunakan Linux untuk pertama kalinya, sangat bingung mengapa mereka tidak dapat lagi mengakses konten flash drive mereka. Lebih buruk lagi jika "IsoHybrid" juga menyertakan Partisi Sistem EFI (ESP) karena pengguna ini mendapat kesan bahwa ukuran drive mereka benar-benar menyusut. Jika Anda membuka reddit atau di tempat lain, Anda akan melihat banyak postingan dari pengguna yang benar-benar bingung tentang apa yang terjadi pada media USB mereka, yang tidak memberikan kesan pertama yang bagus untuk Linux... - Karena banyak pengelola distro Linux sangat fokus untuk membuat ISOHybrid berfungsi sehingga mereka sepenuhnya mengabaikan opsi untuk membuat media yang dapat di-boot UEFI hanya dengan menyalin konten ke
FAT32
partisi yang diformat, yang, sungguh, harus selalu menjadi metode pilihan untuk membuat drive UEFI yang dapat di-boot (karena biasanya memformat partisi dan kemudian menyalin file jauh lebih kecil risikonya daripada menggunakandd
memerintah). Karena itu, kami telah melihat beberapa masalah yang membuat pengalaman pengguna di bawah standar dengan Manjaro, Ubuntu... Ini sebenarnya adalah poin utama pertikaian saya dengan "ISOHybrid":Ini seharusnya tidak menjadi alasan untuk membuang sarana yang sudah ada membuat media yang dapat di-boot! - GPT dan "ISOHybrid" dapat bermasalah karena tabel GPT sekunder akan terlihat rusak saat menggunakan
dd
... yang sebenarnya mengarah ke BSOD pada Windows 7 (tapi itu benar-benar bug Windows daripada masalah ISOHybrid). Tetap saja, bukan pengalaman terbaik bagi orang-orang Windows yang membuat drive yang dapat di-boot... - Dan terakhir, karena "ISOhybrids" disajikan seolah-olah mereka adalah media paling alami di dunia (yang tentu saja tidak), orang-orang seperti Anda dituntun untuk percaya bahwa setiap gambar ISO dapat diterapkan menggunakan
dd
, jika itu adalah pengecualian ketimbang aturannya. Ini sangat disayangkan, karena menciptakan BANYAK kebingungan pengguna, dengan beberapa pengguna Linux memberi tahu orang-orang yang ingin membuat media yang dapat di-boot Windows bahwa mereka seharusnya dapat menggunakandd
ketika itu pasti tidak akan pernah berhasil! Selain itu, jika Anda memilih ISO Linux mana pun dari 10 tahun yang lalu, saya cukup yakin bahwa Anda akan menemukan bahwa hampir tidak ada yang benar-benar dapat digunakan untuk membuat media yang dapat di-boot menggunakandd
karena "IsoHybrid` ini sebenarnya adalah pengembangan terbaru.
Sejauh yang saya tahu, Microsoft tidak memiliki rencana untuk beralih ke "hack" yaitu ISOHybrid untuk ISO Windows mereka, yang berarti Anda tidak akan pernah dapat menggunakan dd
untuk membuat media USB yang dapat di-boot darinya, dan oleh karena itu, jika Anda ingin membuat media yang dapat di-boot Windows dari ISO, Anda juga:
- (UEFI) Perlu memformat drive dengan sistem file tempat Windows dapat melakukan booting (
NTFS
,FAT32
dan yang terbaruexFAT
) dan ekstrak file ISO ke atasnya. Sekarang, jika menggunakanNTFS
atauexFAT
, Anda mungkin harus melakukan sedikit pekerjaan ekstra juga... - (BIOS/Legacy) Perlu memformat drive dengan sistem file tempat Windows dapat melakukan booting (
NTFS
atauFAT32
--exFAT
tidak akan berfungsi karena Microsoft tidak pernah memublikasikan bootloader BIOS untuknya), lalu membuat rantai bootloader yang relevan, dari kode boot MBR hingga rekaman boot volume.
Ini sebenarnya tidak terlalu rumit untuk dicapai, tetapi membutuhkan lebih banyak pekerjaan daripada salinan 1:1 dari file ISO.
Semoga itu menjawab pertanyaan Anda.
dd
bukan alat yang tepat untuk membuat USB yang dapat di-boot windows. Cara mudahnya adalah dengan menggunakan woeusb
.
Instal:
sudo apt-get install devscripts equivs gdebi-core
cd WoeUSB
./setup-development-environment.bash
mk-build-deps
sudo gdebi woeusb-build-deps_3.3.1_all.deb
dpkg-buildpackage -uc -b
sudo gdebi ../woeusb_3.3.1_amd64.deb
Sekarang, versi paketnya adalah 3.3.1
, dalam hal pembaruan paket, perintah ./setup-development-environment.bash
akan mencetak versi saat ini, Anda harus menggantinya dengan perintah di atas.
Penggunaan:
Anda dapat menggunakan GUI , jalankan woeusbgui
dari terminal. Atau Anda dapat menggunakan CLI:
Lepas perangkat USB (penting). Kemudian jalankan:
sudo woeusb -v --device /path/to/windows.iso /dev/sdc