web-dev-qa-db-ja.com

GRUBを使用してAndroidを起動しますが、どのようにしますか?

小さな問題があります。 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をAndroid-x86.orgおよびバージョン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 Customizerを再度開くと、ブートメニューに表示されず、スクリプトが削除されます。

これは私のコードです:

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が表示されません。しかし、なぜ?

8
VirusPLayer

Android x86 6.0について

「EEEPC」の割り当てはASUS EEEPC専用です。ある場合にのみ使用してください。そうでない場合はAndroid_x86を使用してください。generic_x86は使用しないでくださいを使用して再起動します CTRL+F1 GUIがロードされないため、ターミナルにアクセスしてrebootを発行します。私はこれを知っていますが、それは意図的ではありますが、悪いアドバイスに続いて数時間を費やしたからです。

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
Bus42

これはXDA開発者による

GRUB 1.97-1.99および2.00 +

  1. 簡単にするために、GRUBカスタマイザをインストールしますこれらをターミナルエミュレータに入力します:コード:

    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 Android x86がインストールされているように変更します。 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カスタマイザーに新しいエントリを作成してUUIDを取得し、 [オプション]タブをクリックし、ドロップダウンで[Linux]オプションを選択します。パーティションのドロップダウンが表示されますので、パーティションを選択してください。 [ソース]タブを開くと、UUIDが表示されます。

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

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

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

これは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/sdb2であり、hd0,msdos4/dev/sdb4です。以下についてはわかりませんが、GRUBはhd0hd1hd2などをLinuxとは異なる順序で実行すると思いますsda/hdasdb/hdbsdc/hdcなど。繰り返しますが、確かではありませんが、GRUBは物理的な順序(BIOSで識別される)で実行すると思います。それらを...ええと...他の方法で行うのでしょうか。繰り返しますが、それについてはわかりません。

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

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

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
0
Karen Schmidt
  • 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
kevy

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

Android-x86 LiveCD1/efi/boot/Android.cfgで、次のメニューエントリを見つけました。

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
banan3'14