Booting dari drive hard disk eksternal dengan MBR

1

Seorang pemula untuk MBR / GPT di sini. Saya hidup di dunia Ubuntu 16.04.

Saya menggunakan Ubuntu Live CD sangat sering. Karena saya memiliki HDD eksternal dengan banyak drive, ide cerdik saya :) adalah untuk mendedikasikan satu drive pada HDD ini sebagai LiveCD untuk menghindari membawa drive flash USB kecil sepanjang waktu di dompet saya.

HDD dipasang sebagai /dev/sdb. Di bawah ini yang saya coba.

  1. Menggunakan " sudo parted /dev/sdb print", saya menemukan bahwa HDD ini memiliki MBR tetapi tidak GPT pada HDD ini.

  2. Selanjutnya, menggunakan " gparted" Saya telah membuat drive " /dev/sdb8" (bukan primer, saya hanya bisa membuatnya menjadi drive logis pada partisi extended)

  3. Dengan menggunakan " sudo rsync -a", saya telah menyalin semua konten LiveCD ke drive ini " /dev/sdb8"

  4. Menggunakan opsi gparted-> manage flags, saya telah mengaktifkan flag "boot" /dev/sdb8(Ini adalah satu-satunya drive dengan flag yang ditetapkan)

  5. Reboot dengan drive yang terhubung pada USB.

Sayang! Itu tidak berhasil.

Dalam daftar opsi booting Satu Kali <F12>(model Dell T1700), saya bahkan tidak melihat HDD Eksternal terdaftar .. yaitu, saya tidak bisa boot dari sini.

Seseorang, tolong bantu!

Jelas, saya perlu memahami beberapa dasar, penjelasan / penunjuk sangat dihargai !!

Suka Probabilitas
sumber
Saat Anda membuat partisi di HDD, Anda harus membuatnya di awal drive dan bukan di akhir. Ketika BIOS memeriksa HDD Anda untuk boot, umumnya tidak melihat akhir HDD Anda untuk OS.
Biku B.
Idenya bagus, tetapi tidak diimplementasikan dengan benar. Pertama, buat cadangan semua informasi pada disk. Anda harus membuat seluruh disk dapat di-boot, mengatur disk, grug4dosdan mengatur di menu.lstubuntu (penggunaan grub4dosmemungkinkan Anda untuk menambahkan LiveCD lain ke disk, yang mungkin Anda perlukan di masa mendatang). Ganti semua partisi hanya dengan folder tempat informasi Anda akan disimpan. Jika tertarik, nanti saya bisa menjelaskan lebih lanjut
Alex_Krug
@Alex_Krug Hei Alex, terima kasih! Apakah Anda mengatakan tidak boleh ada partisi pada HDD yang dapat di-boot? Saya sangat tertarik, tolong jelaskan.
Loves Probability

Jawaban:

1

Grub4dosdapat diinstal pada stik USB / HDD pada sistem file yang didukung. Dalam hal ini, ia dapat sepenuhnya menggantikan loader sistem operasi asli. Lebih baik memformat dalam ntfs.

  1. buat cadangan di suatu tempat dari seluruh isi disk (semua partisi).
  2. Program atau livecd ( gparted, acronis, paragon, dll) menghapus semua partisi dan membuat satu partisi pada seluruh disk dalam ntfs(mungkin perlu untuk membuatnya aktif dan bootable).
  3. Unduh grub4dosarsip zip di sana:

https://sourceforge.net/projects/grub4dos/files/GRUB4DOS/grub4dos%200.4.4/grub4dos-0.4.4.zip/download

jika Anda bekerja di windows, Anda dapat menggunakan pemasang GUI di sana:

https://yadi.sk/d/dQYHiAFJTH8TR

  1. Untuk menginstal Grub4dos ke USB-stick / HDD menjalankan sistem operasi apa pun (Windows, Linux liveCD), sambungkan perangkat target - USB-stick atau USB-HDD isi paket grub4dos-0.4.4.ziptersebut dibongkar ke tempat yang tersedia untuk sistem operasi yang digunakan. Dalam direktori tidak diarsipkan, perintah dijalankan

    # bootlace.com --time-out=0 --no-backup-mbr --mbr-disable-floppy /dev/sdX

dimana /dev/sdX- adalah perangkat yang terhubung dengan target

jika Anda bekerja di windows, Anda menjalankan installer GUI Grub4DOS.exe(maaf, jendela pertama dalam bahasa Rusia, tetapi dari gambar semuanya jelas) (melalui "Browse"pilih USB-HDD, ekstrak file)

http://lazvm-comp.ucoz.ru/_pu/0/s63791143.jpg

Kami menempatkan burung di "Disc"lapangan dan memilih USB-HDD kami. Dalam daftar akan ada juga bagian dari hard disk Anda yang lain, hati-hati, dipandu oleh volume. Dalam hal ini, drive tes USB memiliki kapasitas 4 GB (3812M). Pengaturan lain tidak menyentuh dan klik Instal.

http://lazvm-comp.ucoz.ru/_pu/0/s53051361.jpg

Setelah itu, file yang diperlukan muncul pada USB-HDD dan menjadi dapat di-boot. Tetap hanya tergelincir di media file yang diperlukan untuk mengunduh sistem operasi dan program yang diperlukan.

Menu.lstadalah file konfigurasi yang paling penting untuk dikerjakan. Ini pada dasarnya adalah file teks, Anda dapat membukanya menggunakan notepad biasa. grldradalah loader itu sendiri. Di dalam Bootfolder ada subfolder bernama gfx, di mana Grub4dostemanya disimpan.

Anda hanya perlu menyalin gambar ISO ke disk dan menambahkan entri ke menu.lstyang tampak seperti ini:

title Ubuntu Mini Installer
find --set-root /images/ubuntu-mini.iso
map --heads=0 --sectors-per-track=0 /images/ubuntu-mini.iso (0xff)
map --hook
chainloader (0xff)

Apa yang dilakukan adalah menemukan ISO, mengekstraknya, loopmount dalam memori (tiga baris pertama) dan kemudian menggunakan grub4dostrik dengan memuat rantai bootloader dari gambar yang baru saja diekstrak. Biasanya ini akan memuat instance grub yang dikirimkan dengan ISO, yang kemudian mem-boot kernel. Keuntungannya adalah Anda tidak perlu tahu di mana semua file berada di dalam gambar ISO, ini ditangani oleh bootloader dari gambar itu sendiri.

Gambar langsung "Fatter" biasanya mengirimkan sistem file sebagai gambar terkompresi dan memainkan trik serupa untuk memberi Anda sistem yang berfungsi. Namun jika Anda menjalankan gambar-gambar ini dengan rantai awal bootloader, referensi ke berbagai sistem file akan tercampur dan ISO akan gagal untuk boot “Unable to find a medium containing a live file system”.

Solusinya adalah tidak mem-chainload bootloader berikutnya, tetapi grub4doslangsung mem-boot kernel linux dari ISO. Ini dapat memerlukan sedikit coba-coba, karena setiap distribusi tampaknya memiliki konvensi mereka sendiri di mana file untuk gambar live mereka pergi (dalam /liveatau /casperatau /bootatau ...). Untuk mem-boot Ubuntu Desktop ISO, menu.lstentri tampak seperti ini:

title Ubuntu Desktop Live
find --set-root /images/ubuntu-desktop.iso
map --heads=0 --sectors-per-track=0 /images/ubuntu-desktop.iso (0xff) || map --mem /images/ubuntu-desktop.iso (0xff)
map --hook
root (0xff)
kernel /casper/vmlinuz.efi  file=/preseed/ubuntu.seed noprompt boot=casper iso-scan/filename=/image/ubuntu-desktop.iso quiet splash --
initrd /casper/initrd.lz

Perbedaan dengan sebelumnya adalah:

chainloader (0xff)diganti dengan root (0xff): Daripada mem-load bootloader dari volume temp (0xff), volume temp disetel sebagai volume root untuk baris kernel perintah berikutnya: Ini adalah baris kernel dari instance grub pada ISO, dengan iso-scan/filenameopsi tambahan initrd line: Ini adalah initrd line dari instance grub pada ISO One way untuk mencari tahu opsi mana yang akan dilewatkan ke kernel (dan di mana semua file berada) adalah dengan terlebih dahulu mem-chainload bootloader yang disertakan dan memeriksa konfigurasi boot-nya. Anda kemudian dapat menyalin parameter ini ke grub4dos menu.lst. Meskipun pengaturan ini berbeda di antara berbagai distribusi, distribusi itu sendiri tidak terlalu sering mengubahnya. Setelah Anda memiliki entri yang berfungsi untuk distro favorit Anda, kemungkinan besar Anda dapat menggunakannya kembali secara grosir ketika versi berikutnya keluar.

Sumber:

http://lazvm-comp.ru/publ/sozdanie_multizagruzochnoj_usb_fleshki_na_osnove_zagruzchika_grub4dos/1-1-0-38

https://wdullaer.com/blog/2010/02/26/boot-iso-files-from-usb-with-grub4dos/ https://wdullaer.com/blog/2016/08/17/boot-live- disk-dari-a-multiboot-usb-as-an-iso /

Contoh saya menu.lst:

timeout=20
default 0
gfxmenu (hd0,0)/Boot/gfx/dragon.gz

title Windows XP BartPE Mini
map (hd0,0)/iso/bartpe_mini.iso (0xff)
map --hook
chainloader (0xff)
boot

title Win7 Live CD x86&x64
chainloader /XMPE/WinPE/bootmgr (0xff)
boot

title xubuntu-16.04.1-desktop-i386
kernel /ubuntu/vmlinuz iso-scan/filename=/ubuntu/xubuntu-16.04.1-desktop-i386.iso boot=casper only-ubiquity initrd=/casper/initrd.lz locale=ru_RU quiet splash --
initrd /ubuntu/initrd.lz

title Acronis Disk Director 12
map --mem --heads=0 --sectors-per-track=0 (hd0,0)/dd/ADD12_3270_ru-RU.iso (hd32)
map --hook
chainloader (hd32)
boot

title Acronis True Image 2017
map --mem --heads=0 --sectors-per-track=0 (hd0,0)/ti/acronis_true_image_2017.iso (hd32)
map --hook
chainloader (hd32)
boot

title Hiren's BootCD 9.3 Rus
map (hd0,0)/iso/Hiren's_BootCD_9.3.iso (0xff)
map --hook
chainloader (0xff)
boot

title MemTest86 5.1
map (hd0,0)/iso/Memtest86-5_1.iso (0xff)
map --hook
chainloader (0xff)
boot

title ERD 6.5_x86_Win7_RTM
map (hd0,0)/iso/ERD65_x86_Win7_RTM.iso (0xff)
map --hook
chainloader (0xff)
boot

title ERD 6.5_x64_Win7_RTM
map (hd0,0)/iso/ERD65_x64_Win7_RTM.iso (0xff)
map --hook
chainloader (0xff)
boot

title ReBoot
reboot

title ShutDown
halt

yang sesuai dengan struktur direktori:

[0000] # user directory with any files on my disk
[Boot]
    [gfx]
        dragon.gz # theme screen `grub4dos`
    BCD
    BCD.log
    memdisk.gz
[dd]
    ADD12_3270_ru-RU.iso
[iso]
    [HDDScan-3.3] # from here I run the program HDDScan under windows liveCD (Win7 Live CD x86&x64)
    bartpe_mini.iso
    ERD65_x64_Win7_RTM.iso
    ERD65_x86_Win7_RTM.iso
    Hiren's_BootCD_9.3.iso
    Memtest86-5_1.iso
[ti]
    acronis_true_image_2017.iso
[ubuntu]
    initrd.lz
    vmlinuz
    xubuntu-16.04.1-desktop-i386.iso
[XMPE] # Windows 7 LiveCD
    [FONTS]
    [W7PePrograms]
    [WinPE]
        BOOT.SDI
        bootmgr
        grldr
        M1
        XM64.bat
        XM64.WIM
        XM86.bat
        XM86.WIM
    BCD
grldr
Menu.lst

Anda dapat menambah, menghapus semua gambar boot dengan mengedit menu.lstdengan analogi

Alex_Krug
sumber