GNU/Linux >> Belajar Linux >  >> Linux

Debian:membuat bootable Windows 10 menginstal USB-drive menggunakan terminal (dd)

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 atau ISO9660 partisi dari disk atau media flash drive, karena meskipun memiliki driver untuk sistem file ini, hasil disk yang Anda buat akan kehilangan MBR atau GPT 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 ada MBR atau GPT 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 atau GPT sesuai dengan apa yang dipilih pengguna, dan buat setidaknya satu partisi, yang biasanya akan menggunakan FAT32 atau NTFS sebagai sistem file (perhatikan bahwa ia menggunakan sistem file yang sama sekali berbeda dari yang digunakan ISO).
  • Jika MBR digunakan, sedikit kode di MBR yang menempatkan pemuat boot sekunder, pada MBR yang relevan partisi, yang dirancang untuk memulai eksekusi kernel Windows, dalam mode disk, dari partisi tersebut. Oh, dan itu juga memastikan bahwa 0x55 0xAA penanda boot ditambahkan di akhir MBR sehingga BIOS melihat disk sebagai bootable. Kemudian itu juga menyalin konten ISO ke FAT32 atau NTFS 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 ke FAT32 partisi, sejak boot dari FAT32 partisi adalah persyaratan wajib UEFI (tapi bukan berarti UEFI tidak bisa boot dari NTFS atau exFAT 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 atas ISO9660 ), 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 menggunakan dd 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 menggunakan dd 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 menggunakan dd 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 terbaru exFAT ) dan ekstrak file ISO ke atasnya. Sekarang, jika menggunakan NTFS atau exFAT , Anda mungkin harus melakukan sedikit pekerjaan ekstra juga...
  • (BIOS/Legacy) Perlu memformat drive dengan sistem file tempat Windows dapat melakukan booting (NTFS atau FAT32 -- 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

Linux
  1. Cara Membuat Drive USB yang Dapat Di-boot Menggunakan Perintah dd

  2. Instal Linux Mint dengan Windows 8 | Dual Boot Windows 8 dan Linux Mint 12

  3. Instal Java di Ubuntu 20.10 Menggunakan Terminal

  1. Membuat stik USB bootable PC menggunakan file .iso di MAC

  2. Bagaimana Cara Membuat Gambar Bootable Windows 10 Di Debian?

  3. Fedora:Buat windows 8.1 bootable USB

  1. Boot ganda Windows dan Linux menggunakan UEFI

  2. Cara dual boot Windows 10 dan Debian 10

  3. Cara Menginstal OS Dasar Bersamaan dengan Windows 10 [Langkah-demi-Langkah]