Booting Android dengan GRUB, tapi bagaimana caranya?

9

Saya punya masalah kecil. Saya memiliki tujuh partisi:

Device    Boot   Begin       End         Blocks     Id   System
/dev/sda1   *      206848   219013119   109403136    7  HPFS/NTFS/exFAT     <-- wINDOWS 7
/dev/sda2       219013120   735516671   258251776    7  HPFS/NTFS/exFAT     <--Musik,....
/dev/sda3       735516672   815638527    40060928    7  HPFS/NTFS/exFAT     <-- Android
/dev/sda4       815640574   976771071    80565249    5  Erweiterte          <-- No Idea:D
Partition 4 does not start at a physical sector boundary.
/dev/sda5       815640576   872494091    28426758   83  Linux               <--Kali Linux
/dev/sda6       970151936   976771071     3309568   82  Linux Swap / Solaris
/dev/sda7       872495104   970149887    48827392   83  Linux               <-- Ubuntu

Saya menemukan tutorial, tetapi saya mencoba ini dan tidak berhasil. Inilah tautannya:

http://www.webupd8.org/2012/03/how-to-dual-boot-android-x86-and-ubuntu.html

Saya menggunakan Android ini dari android-x86.org dan versi android-x86-4.4-r1.iso.

Ini adalah dokumen 40_Costum saya:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Android-x86" {
set root='(hd0,3)'
linux /android-x86-4.4-r1/kernel quiet root=/dev/ram0 androidboot_hardware=eeepc acpi_sleep=s3_bios,s3_mode SRC=/android-x86-4.4-r1
initrd /android-x86-4.4-r1/initrd.img}

Jika saya memulai PC saya, boot manager GRUB datang dan saya dapat memilih Android, tetapi itu tidak bisa mem-boot Android. Latar belakangnya ungu dan tidak ada yang terjadi.

Apa yang akan menjadi 40_Custommskrip yang lengkap dan berfungsi ?


Tidak berfungsi jika saya membuat skrip di Grub Customizer dan menyimpannya. Itu tidak muncul di menu boot jika saya membuka Grub Customizer lagi skrip dihapus.

Ini kode saya:

set root='(hd0,3)' 
`search --no-floppy --fs-uuid --set=root 28D9FDF951298246  
linux android-x86/kernel root=UUID=28D9FDF951298246  quiet 
androidboot.hardware=generic_x86 SRC=/android-x86 acpi_sleep=s3_bios,s3_mode 
initrd Android-x86/android-4.4-r1/initrd.img

Sekarang saya punya satu masalah ekstra:

Jika saya Mulai laptop saya itu menunjukkan Ubuntu, Windows, Kali Linux dan Android (yang tidak berfungsi), tetapi jika saya memulai GRub Costumizer Windows tidak terdaftar ?! Tapi kenapa?

VirusPLayer
sumber

Jawaban:

3

Mengenai Android x86 6.0

Tugas "EEEPC" hanya untuk ASUS EEEPCs, hanya menggunakannya jika Anda memilikinya, jika tidak gunakan android_x86, jangan gunakan generic_x86 , Anda akan terjebak pada animasi boot dan harus memulai kembali dengan menggunakan CTRL+ F1untuk mengakses terminal dan mengeluarkan rebootsebagai GUI tidak akan dimuat. Saya tahu ini karena saya menghabiskan beberapa jam mengikuti nasihat yang buruk, meskipun dengan niat baik.

set root='(hd0,4)'
linux /android-6.0-rc1/kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 acpi_sleep=s3_bios,s3_mode SRC=/android-6.0-rc1
initrd /android-6.0-rc1/initrd.img

Ini adalah konfigurasi terakhir yang bekerja untuk saya di sekolah lama SONY VAIO 64 bit pada pengaturan boot tiga.

'(0,4)'adalah lokasi hard drive saya dan partisi Android x86 diinstal, ubah sesuai. Anda tidak memerlukan UUID Anda, Anda hanya perlu apa yang saya masukkan di atas dengan lokasi instalasi Anda menjadi satu-satunya perubahan.

Bus42
sumber
2

Ini dari Pengembang XDA

Untuk GRUB 1,97 - 1,99 & 2,00 +

  1. Untuk mempermudahnya, instal GRUB Customizer Ketikkan ini ke emulator terminal: Kode:

    sudo add-apt-repository ppa:danielrichter2007/grub-customizer
    sudo apt-get update
    sudo apt-get install grub-customizer
    
  2. Buka penyesuai GRUB dan buat entri GRUB baru.

  3. Buka tab 'Sumber', ketik ini:

    set root='(hd0,4)'
    search --no-floppy --fs-uuid --set=root e1f9de05-8d18-48aa-8f08-f0377f663de3
    linux androidx86/kernel root=UUID=e1f9de05-8d18-48aa-8f08-f0377f663de3 quiet      androidboot.hardware=generic_x86 SRC=/androidx86 acpi_sleep=s3_bios,s3_mode
    initrd androidx86/initrd.img
    

Inilah yang harus diubah:

  1. set root='(hd0,4)': Ubah (hd0,4) ke partiton yang diinstal Android x86. HD0 berarti sda, jadi jika Anda menginstalnya ke sdb, itu akan menjadi hd1 dan seterusnya. HD0,4 berarti nomor partisi, dalam kasus saya, hd0,4 berarti sda4. Jadi jika Anda menginstalnya di sda6, itu akan menjadi hd0,6.

  2. --set=root e1f9de05-8d18-48aa-8f08-f0377f663de3: Nomor acak di sini adalah UUID partisi Android x86 diinstal. Anda harus mengubahnya untuk memperbaiki UUID, Anda dapat dengan mudah mendapatkan UUID dengan membuat entri baru di GRUB Customizer lalu buka tab Opsi, lalu pilih opsi 'Linux' pada dropdown. Anda akan melihat dropdown partisi, pilih partisi Anda. Buka tab sumber, Anda akan melihat UUID di sana.

  3. androidx86/: Root Android x86 Ubah ke root Android x86 Anda. Anda dapat melihat apa root Android x86 Anda dengan menavigasi ke partisi Android x86, dan Anda akan melihat nama folder dimulai dengan 'android', itulah akar dari Android x86 Anda

  4. androidboot.hardware: Perangkat Anda, tentu saja. Catatan: Jika Anda menggunakan Android 2.3 - 4.0.3, ubah ke androidboot_hardware Berikut daftar perangkat kerasnya:

  • generic_x86 : Jika perangkat keras Anda tidak terdaftar, gunakan ini
  • eeepc : Laptop EEEPC
  • asus_laptop : Laptop ASUS (hanya laptop ASUS yang didukung)
Mark Kirby
sumber
Saya harus menggunakan jalur absolut, yaitu /androidx86/kernel. Kalau tidak, saya mendapat kesalahan tentang file tidak ditemukan.
banan3'14
1

Ini adalah pertanyaan berumur sepuluh bulan, tetapi saya pikir saya akan tetap membantu. Sebenarnya ini adalah perbaikan yang sangat sederhana. Saya melempar perbaikan dalam jawaban saya alih-alih menekan "edit" pada jawaban di atas karena saya tidak ingin menunggu peer review atau apa pun.

Bagaimanapun, jawaban dengan suara terbanyak menyatakan bahwa Anda harus menggunakan kode berikut:

set root='(hd0,4)'
`search --no-floppy --fs-uuid --set=root e1f9de05-8d18-48aa-8f08-f0377f663de3
linux androidx86/kernel root=UUID=e1f9de05-8d18-48aa-8f08-f0377f663de3 quiet      androidboot.hardware=generic_x86 SRC=/androidx86 acpi_sleep=s3_bios,s3_mode
initrd androidx86/initrd.img

Masalahnya ada di baris dua. Ada kuburan yang tersesat (`) di awal baris dua. Sesederhana itu. Terkadang hal yang paling sederhanalah yang membuat semuanya berhenti bekerja.

Saya membayangkan bahwa Anda telah menemukan cara untuk menambahkan Android x86 ke GRUB atau Anda tidak peduli lagi tapi ya. Jadi, inilah kode yang benar:

set root='(hd0,4)'
search --no-floppy --fs-uuid --set=root e1f9de05-8d18-48aa-8f08-f0377f663de3
linux androidx86/kernel root=UUID=e1f9de05-8d18-48aa-8f08-f0377f663de3 quiet      androidboot.hardware=generic_x86 SRC=/androidx86 acpi_sleep=s3_bios,s3_mode
initrd androidx86/initrd.img

Ini seluruh /etc/grub.d/40_customfile saya (tidak termasuk exec taildan baris komentar di awal):

menuentry "Android x86 4.4 R2" --class android --class gnu-linux --class gnu --class os {
    set root='(hd0,msdos2)'
    search --no-floppy --fs-uuid --set=root a47b5fe5-8969-4774-be9c-72c32a3fd14b
    linux /android-4.4-r2/kernel root=UUID=a47b5fe5-8969-4774-be9c-72c32a3fd14b quiet      androidboot.hardware=generic_x86 SRC=/android-4.4-r2 acpi_sleep=s3_bios,s3_mode
    initrd /android-4.4-r2/initrd.img
}
menuentry "Android x86 5.0.2 UNOFFICIAL" --class android --class gnu-linux --class gnu --class os {
    set root='(hd0,msdos4)'
    search --no-floppy --fs-uuid --set=root d2edeae9-3dc8-41b1-b775-25d0a8028092
    linux /android-2014-12-25/kernel root=UUID=d2edeae9-3dc8-41b1-b775-25d0a8028092 quiet      androidboot.hardware=generic_x86 SRC/android-2014-12-25 acpi_sleep=s3_bios,s3_mode
    initrd /android-2014-12-25/initrd.img
}

Jelasnya hd0,msdos2adalah partisi tempat saya menginstal Android 4.4 R2 dan a47b5fe5-8969-4774-be9c-72c32a3fd14bmerupakan UUID dari partisi tersebut dan hd0,msdos4merupakan partisi tempat saya menginstal Android 5.0.2 (tidak resmi dan sangat tidak stabil) dan d2edeae9-3dc8-41b1-b775-25d0a8028092menjadi UUID partisi tersebut.

Bagi saya, hd0,msdos2ini /dev/sdb2dan hd0,msdos4itu /dev/sdb4. Saya tidak yakin pada berikut, tapi saya berpikir bahwa GRUB tidak hd0, hd1, hd2, dll dalam urutan yang berbeda dari Linux tidak sda/hda, sdb/hdb, sdc/hdc, dll Sekali lagi, tidak yakin, tapi saya pikir GRUB melakukannya agar fisik (karena mereka akan diidentifikasi di BIOS Anda) dan Linux melakukannya di ... uhh ... cara lain, saya kira. Sekali lagi, tidak yakin tentang itu.

Tapi ya jika Anda perlu mencari tahu partisi mana dalam format partisi GRUB ( hdX,msdosY) partisi Android Anda (yang saya lihat adalah /dev/sda3), restart PC Anda dan tekan C untuk pergi ke baris perintah. Kemudian ketik (hddan tekan tab (tab autocompletes things) dan kemudian akan mencantumkan semua drive sebagai opsi autocomplete (tidak 100% yakin tapi saya seperti 70% yakin tidak menampilkan drive USB kecuali drive SATA terhubung dengan USB ke adaptor SATA). Kemudian ketik (hd0, dan tekan tab dan itu akan mencantumkan semua partisi hd0sebagai opsi pelengkapan otomatis. Jika Anda memiliki banyak drive, cari tahu yang mana /dev/sda3hanya masalah coba-coba saat menggunakan pelengkapan otomatis aktif (hd. Saya tidak yakin persis seperti apa hasilnya tetapi saya tahu pasti hasilnya(hd0, akan (jelas) menampilkan pengidentifikasi partisi gaya-GRUB untuk semua partisi pada hd0(untuk Anda, itu akan msdos1melalui msdos7; di GRUB, hddimulai pada 0 tetapi msdosdimulai pada 1), label semua partisi pada hd0, dan sistem file ( biasanya Anda melempar Android x86 ke ext2 tetapi karena Anda memilikinya di NTFS, itu akan menampilkan sistem file sebagai NTFS, bagi kebanyakan orang itu akan menampilkan ext2 yang bagaimana saya tahu yang mana karena partisi Android saya adalah satu-satunya partisi ext2 Saya sudah).

Hmm ... Awalnya saya bermaksud hanya memperbaiki kesalahan di baris dua dari jawaban paling populer dan saya berakhir dengan tutorial yang hampir lengkap tentang cara menambahkan Android x86 ke GRUB ...

Andrew Endominium
sumber
1
  • Buka 40_custom:

    sudo -H gedit /etc/burg.d/40_custom
    
  • Tambahkan entri menu Android x86:

    menuentry "Android-4.3-x86" --class android {
    set root='(hd*,msdos*)'
    linux /path/android-4.3-x86/kernel quiet root=/dev/ram0 androidboot.hardware=tx2500 acpi_sleep=s3_bios,s3_mode SRC=/path/android-4.3-x86 vga=788
    initrd /path/android-4.3-x86/initrd.img
    

    (atur pathdan *sebagai milik Anda)

  • Perbarui grub:

    sudo update-grub
    
kevy
sumber
0

Tidak ada jawaban lain yang bekerja untuk saya, jadi saya memutuskan untuk menemukan sendiri solusinya dalam file yang disediakan oleh gambar ISO dengan file instalasi Android-x86.

Di Android-x86 LiveCD1/efi/boot/android.cfgsaya menemukan entri menu berikut:

set root=$android
linux $kdir/kernel root=/dev/ram0 androidboot.selinux=permissive buildvariant=userdebug $src $@
initrd $kdir/initrd.img

Pertanyaannya adalah apa nilai-nilai $kdirdan $androidseharusnya. Setelah menginstal partisi saya menginstal sistem pada ( sda2), saya menemukan nama direktori - cm-x86-14.1-r2.

$@adalah parameter tambahan ( quietdalam solusi saya) dan $srcdapat diabaikan. Akhirnya, saya membuat entri grub berikut:

set root='(hd0,2)'
linux /cm-x86-14.1-r2/kernel quiet root=/dev/ram0 androidboot.selinux=permissive buildvariant=userdebug
initrd /cm-x86-14.1-r2/initrd.img

Dan itu berhasil.

banan3'14
sumber
0

Ini semua sangat membantu, tetapi pada akhirnya, itu hilang sedikit untuk saya dan tidak akan berfungsi sampai saya menambahkan semua bagian.

set root='(hd0,2)'
linux /cm-x86-14.1-r2/kernel quiet root=/dev/ram0 androidboot.selinux=permissive buildvariant=userdebug
initrd /cm-x86-14.1-r2/initrd.img

Seperti yang diposting oleh Banan3'14 benar, tetapi tidak ada:

search --no-floppy --fs-uuid --set=root a47b5fe5-8969-4774-be9c-72c32a3fd14b

Mungkin itu tersirat dan saya terlalu baru untuk mendapatkannya, tetapi begitu saya selesai, itu berhasil.

    set root='(hd0,2)'
 search --no-floppy --fs-uuid --set=root a47b5fe5-8969-4774-be9c-72c32a3fd14b
    linux /cm-x86-14.1-r2/kernel quiet root=/dev/ram0 androidboot.selinux=permissive buildvariant=userdebug
    initrd /cm-x86-14.1-r2/initrd.img
Karen Schmidt
sumber
-1

Jangan repot-repot dengan sda atau sdc, itu selalu (hd0, x) dalam kasus saya jika Anda menginstal android x86 ke perangkat booting. Artinya, dalam kasus saya, apakah perangkat Anda terdaftar di os seperti ubuntu sebagai / dev / sda atau / dev / sdb, Anda harus menambahkan (hd0, x), x adalah jumlah partisi android x86 Anda, di grub 2 item, selama Anda boot dengan perangkat yang sama Anda menginstal Android x86 Anda (misalnya, Anda menginstal Android x86 di drive usb bernama U di partisi 3, dan U terdaftar di ubuntu Anda sebagai / dev / sdc, tetapi Anda boot dari U, maka Anda harus menambahkan root = (hd0,3) tetapi tidak root = (hd2,3) di grub).

CRE
sumber
Saya mencoba meningkatkan jawaban Anda. Tapi tidak bisa membuat kepala atau ekornya. Anda dapat mengubah jawaban Anda jika mengeklik tautan edit di bawah jawaban Anda.
MadMike