GRUBでAndroidを起動する方法は?


9

小さな問題があります。7つのパーティションがあります。

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

チュートリアルを見つけましたが、試してみましたが機能しません。ここにリンクがあります:

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

私はこのAndroid-x86.orgのAndroidとバージョンandroid-x86-4.4-r1.isoを使用しました。

これは私の40_Costumドキュメントです:

#!/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}

PCを起動すると、GRUBブートマネージャーが表示され、Androidを選択できますが、Androidは起動しません。背景は紫色で何も起こりません。

完全で機能する40_Custommスクリプトは何でしょうか?


Grub Customizerでスクリプトを作成して保存しても機能しません。もう一度Grubカスタマイザを開くと、スクリプトが削除され、ブートメニューに表示されません。

これは私のコードです:

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

ここで、もう1つ問題があります。

ラップトップを起動すると、Ubuntu、Windows、Kali Linux、Android(動作しません)と表示されますが、GRub Costumizerを起動すると、Windowsが表示されません。しかし、なぜ?

回答:


3

Android x86 6.0について

"EEEPC"割り当てはASUS EEEPC専用です。割り当てがある場合にのみ使用してください。そうでない場合はandroid_x86generic_x86を使用しないでください。起動アニメーションで動かなくなり、CTRL+ F1を使用して再起動し、ターミナルにアクセスしrebootて、 GUIは読み込まれません。私はこれを知っています。私は、善意ではありますが、悪いアドバイスに数時間費やしたからです。

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

これは、トリプルブートセットアップの古い学校のSONY VAIO 64ビットで私にとって有効だった最後の構成でした。

'(0,4)'私のハードドライブとAndroid x86がインストールされたパーティションの場所でした、それに応じて変更してください。あなたはあなたのUUIDを必要としません、あなたがインストールした場所が唯一の変更である上で私が上に置いたものを正確に必要とするだけです。


2

これはXDA開発者からです

GRUB 1.97-1.99および2.00 +

  1. 簡単にするには、GRUB Customizer Typeをターミナルエミュレータにインストールします。コード:

    sudo add-apt-repository ppa:danielrichter2007/grub-customizer
    sudo apt-get update
    sudo apt-get install grub-customizer
    
  2. GRUBカスタマイザを開き、新しいGRUBエントリを作成します。

  3. 「ソース」タブを開き、次のように入力します。

    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
    

変更する内容は次のとおりです。

  1. set root='(hd0,4)':(hd0,4)をpartitonに変更します。Androidx86がインストールされています。hd0はsdaを意味するので、sdbにインストールすると、hd1になります。hd0,4はパーティション番号を意味します。私の場合、hd0,4はsda4を意味します。したがって、sda6にインストールすると、hd0,6になります。

  2. --set=root e1f9de05-8d18-48aa-8f08-f0377f663de3:ここでの乱数は、Android x86がインストールされているパーティションのUUIDです。正しいUUIDに変更する必要があります。GRUBカスタマイザーで新しいエントリを作成し、[オプション]タブに移動して、ドロップダウンで[Linux]オプションを選択することで、UUIDを簡単に取得できます。パーティションのドロップダウンが表示されるので、パーティションを選択します。ソースタブを開くと、そこにUUIDが表示されます。

  3. androidx86/:Android x86のルートこれをAndroid x86ルートに変更します。Android x86パーティションに移動すると、Android x86ルートが何であるかを確認でき、「android」で始まるフォルダー名が表示されます。これは、Android x86のルートです。

  4. androidboot.hardware:もちろん、あなたのデバイス。注:Android 2.3-4.0.3を使用している場合は、androidboot_hardwareに変更します。ハードウェアのリストは次のとおりです。

  • generic_x86 :ご使用のハードウェアがリストにない場合は、これを使用してください
  • eeepc :EEEPCラップトップ
  • asus_laptop :ASUSラップトップ(サポートされているASUSラップトップのみ)

つまり、絶対パスを使用する必要がありました/androidx86/kernel。そうしないと、ファイルが見つからないというエラーが発生しました。
banan3'14

1

これは10か月前の質問ですが、とにかく私が手伝ってくれると思いました。これは実際には非常に単純な修正です。ピアレビューなどを待ちたくないので、上記の回答で「編集」を押すのではなく、私の回答に修正を入れています。

とにかく、投票数が最も多い答えは、次のコードを使用する必要があることを示しています。

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

問題は2行目にあります。行2の先頭に浮遊墓( `)があります。文字通りそれと同じくらい簡単です。時々、それはすべてが機能しなくなる最も単純なものです。

私はあなたがAndroid x86をGRUBに追加する方法を見つけたのか、それとももう気にならなくなったと思います。だからここに正しいコードがあります:

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

これが私の/etc/grub.d/40_customファイル全体です(exec tail冒頭のとコメントアウトされた行を除く):

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
}

もちろんhd0,msdos2私は、Android 4.4 R2を持っているパーティションが上にインストールされa47b5fe5-8969-4774-be9c-72c32a3fd14bたパーティションのUUIDであるとhd0,msdos4私は、Android 5.0.2(非公式と非常に不安定)にし、インストールされていることをパーティションでd2edeae9-3dc8-41b1-b775-25d0a8028092そのパーティションのUUIDています。

私にとっては、でhd0,msdos2あり/dev/sdb2hd0,msdos4です/dev/sdb4。私は次のようにわからないんだけど、私は、GRUBがないと思いhd0hd1hd2、などのLinuxはよりも異なる順序でsda/hdasdb/hdbsdc/hdc、などここでも、ないように注意してください、私はGRUBが物理的な順序(彼らは同じようにそれをしないと思いますあなたのBIOSで識別される)そしてLinuxはそれらを...ええと...何か他の方法で行うと思います。繰り返しますが、よくわかりません。

しかし、もしあなたがGRUBパーティション形式(hdX,msdosY)であるAndroidパーティションがどのパーティションであるかを知る必要がある場合(私はそうです/dev/sda3)、PCを再起動し、Cを押してコマンドラインに移動します。次に(hd、タブを入力してヒットします(タブはオートコンプリート機能)。すべてのドライブがオートコンプリートオプションとして一覧表示されます(100%確実ではありませんが、USBで接続されたSATAドライブでない限り、70%でUSBドライブが表示されません。 SATAアダプタへ)。次にと入力(hd0してタブhd0を押すと、オートコンプリートオプションとしてすべてのパーティションがリストされます。複数のドライブがある場合/dev/sda3は、でオートコンプリートを使用する際に試行錯誤の問題であるドライブを特定し(hdます。結果がどのように見えるか正確にはわかりませんが、結果が(hd0は、(明らかに)上のすべてのパーティションのGRUBスタイルのパーティション識別子を表示hd0します(あなたにとっては、それはをmsdos1経由しmsdos7ます; GRUBではhd0 msdosから始まりますが1から始まります)、上のすべてのパーティションのラベルhd0、およびファイルシステム(通常はAndroid x86をext2にスローしますが、NTFSにあるため、ファイルシステムはNTFSとして表示されます。ほとんどの場合、ext2が表示されます。これは、Androidパーティションが唯一のext2パーティションであるため、どれであるかを知る方法です。私が持っています)。

うーん...私は当初、最も人気のある答えの2行目の間違いのみを修正するつもりでしたが、Android x86をGRUBに追加する方法についての完全に近いチュートリアルに終わりました...


1
  • オープン40_custom

    sudo -H gedit /etc/burg.d/40_custom
    
  • 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
    

    (設定path*、あなたのものとして)

  • GRUBを更新:

    sudo update-grub
    

0

他の答えはどれもうまくいかなかったので、私は自分自身で解決策を見つけて、Android-x86インストールファイルを含むISOイメージによって提供されるファイルを見つけました。

ではAndroid-x86 LiveCD1/efi/boot/android.cfgI以下のメニュー項目が見つかりました:

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

問題は、どのような価値が$kdirあり、ある$androidべきかでした。(sda2)にシステムをインストールしたパーティションをマウントした後、ディレクトリの名前が見つかりました- cm-x86-14.1-r2

$@追加のパラメーター(quiet私のソリューション)であり、$src無視できます。最後に、次のgrubエントリを作成しました。

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

そしてそれは機能します。


0

これは非常に役に立ちましたが、結局のところ、私にとっては少し欠けていて、すべてのパーツを追加するまで機能しませんでした。

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

Banan3'14による投稿は正しかったが、欠落していた:

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

多分それは暗示されていて、私はそれを手に入れるにはあまりにも新しいのですが、すべてをまとめると、うまくいきました。

    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

-1

sdaやsdcを気にしないでください。私のデバイスでは、起動デバイスにAndroid x86をインストールした場合は常に(hd0、x)です。つまり、私の場合、デバイスがubuntuのようなOSで/ dev / sdaまたは/ dev / sdbとしてリストされているかどうかに関係なく、(hd0、x)を追加する必要があります。xは、grub内のAndroid x86パーティションの番号です2項目。Androidx86をインストールしたのと同じデバイスで起動する限り(たとえば、Android x86をパーティション3のUという名前のUSBドライブにインストールし、Ubuntuに/ dev / sdcとしてリストされているが、 Uから起動する場合、root =(hd0,3)を追加する必要がありますが、GRUBにroot =(hd2,3)を追加しないでください。


私はあなたの答えを改善しようとしました。しかし、それの頭や尾を作ることはできません。回答の下にある編集リンクをクリックすると、回答を変更できます。
MadMike、2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.