android加载efi分区,玩转Android-x86(安装启动、个性定制、高级运用)-8.5更新2楼分区挂载代码支持多硬盘...

这篇博客介绍了如何在不同类型的电脑(如ThinkPad_x61, SurfacePro3和MacBookPro)上安装Android-x86系统,包括硬盘分区、系统文件提取、创建data.img文件以及UEFI启动配置。提供了详细的步骤和所需工具,适用于不同系统和硬盘格式。同时,还分享了如何解决macOS系统下Android-x86开机亮度问题的技巧。" 77855400,1373305,Java并发编程面试精讲:事务、集合与同步机制,"['Java并发', '面试题', '并发编程', '数据结构', 'JVM']
AI助手已提取文章相关产品:

玩转Android-x86(安装启动、个性定制、高级运用)

安装篇

本文并不是一篇高大上的教程,只是本人多年来的玩机经验总结,以及在不同系统、不同机型遇到的问题解决备忘录,本着“团结、互助、分享”的精神,现把我的经验贴出来,旨在与机友交流,或起到抛砖引玉的作用。

PC安装Android-x86虽然不象实体手机(平板)那样有刷机ROOT变砖的风险,但仍然存在操作不当可能破坏原来的系统,导致重要的资料丢失或电脑不能正常启动而不得不重装系统,因此我们在一些关键的操作一定要充分理解并弄懂该操作的目的,以免造成不必要的麻烦。

下面就本人用的电脑安装不同的Android-x86过程,分享给大家供参考:

一、准备工作

1、硬盘准备,使用DiskGenius工具无损分区和调整各分区大小:

ThinkPad_x61:不支持UEFI启动,2G-RAM,500G固态硬盘,MBR格式四个主分区

分区1-NTFS,64G,已安装Windows7

分区2-NTFS,300G,资料存储

分区3-Ext4,64G,安装Android-x86

分区4-Ext4,所有剩余空间,安装Ubuntu-18.04

SurfacePro3:支持UEFI启动,8G-RAM,500G固态硬盘,GPT格式ESP+四个主分区

分区1-FAT(ESP),1G,启动文件+Win8PE+Pmagic用于系统维护

分区2-NTFS,64G,已安装Windows8.1ent

分区3-NTFS,300G,资料存储

分区4-Ext4,64G,安装Android-x86

分区5-Ext4,所有剩余空间,安装Ubuntu-18.04

MacBookPro(15吋2015版):支持UEFI启动,16G-RAM,500G固态硬盘,GPT格式ESP+四个主分区

分区1-FAT(ESP),1G,启动文件+Win8PE+Pmagic用于系统维护

分区2-APFS,所有剩余空间,安装Apple_macOS

分区3-NTFS,64G,安装Windows8.1ent

分区4-Ext4,32G,安装Ubuntu-18.04

分区5-NTFS,256G,资料存储,安装Android-x86

需要特别注意在准备硬盘时苹果电脑需要先用“时间机器”将macOS先备份(除非你不会动到APFS分区或想重新安装macOS,但备份一下有益无害)再用DiskGenius工具来定制硬盘,然后再用备份盘启动电脑恢复到指定的分区。按我的理解:通常macOS都是安装在第二个分区,也就是紧接着ESP的那个分区,保存重要资料的分区放在最后,中间的分区用来安装其它系统,这样做有个好处,就是紧接着macOS的空闲空间可以轻松被macOS回收和重新划分出空间,方便以后调整空间分配,而在macOS下又不容易误操作损坏保存有重要资料的分区。

2、Android-x86系统

我接触过的主要是下面四个版本,可根据机器和个人喜欢选择下载,一般老机器不支持64bit系统运行的机型、或者内存小于2G的机型选择32bit版本。

因为我的安装方法不使用官方自带安装程序,所以只需要下载ISO文件:

Android-x86官方原版:http://www.android-x86.org/,这个不用多说,其它版本应该都是基于这个深度定制来的。

cm-x86(LineageOS):http://www.android-x86.org/,最新版本能分屏,窗口控制功能简单。

官方网站提供的版本是v2.0.513-Android5.1,http://www.android-x86.org/这里提供的是版本v3.0.207-Android6.0

PhoenixOS:http://www.phoenixos.com/phoenixos官方一直在维护更新,有完善的窗口控制功能,个人感觉凤凰OS整体界面风格是最好的。

二、安装和启动配置

1、将下载来的ISO文件打开(Windows8以后的可以直接双击加载ISO文件,也可以用WinRAR或UltraISO等工具打开)提取里的4个文件:initrd.img、kernel、ramdisk.img、system.sfs,其中system.sfs再用7z打开提取出system.img

到这里还差一个文件data.img需要我们自己准备,如果你已经有一台能运行Android-x86的电脑那就简单了,不管运行的是RemixOS还是PhoenixOS都可以,打开终端模拟器,没有终端模拟器就按Alt-F1吧,然后用下面的命令来创建:

make_ext4fs -l 8192M -a data /xxx/xxx/data.img

-l 8192M 表示创建一个8G的映象文件

-a data 表示映象的Android挂载点是data

/xxx/xxx/data.img 表示映象文件路径和名称

如果你有运行Ubuntu,打开终端,也可以用使用上面的命令来创建,命令参数都不变,首次使用该命令会提示命令不存在并提示如何安装,按照提示安装一下就是了。

甚至如果你有一台Android5.0以上的手机或平板,只要安装有终端模拟器,都可以用上面的命令来创建。

如果什么都没有,我预制了 8G、16G、32G的空白data.img文件供下载使用,空白映象压缩后很小的,只有几M大小,下载很快。

现在有了这5个文件:initrd.img、kernel、ramdisk.img、system.img、data.img,一个完整的Android系统就有了,把它们放到一个文件夹里,文件夹取个好听的名字比如:LineageOS或者PhoenixOS都可以,也可以放到某个文件夹的子文件夹下面。如果是要安装在Ext4分区,打开DiskGenius将文件夹整体拖到Ext4分区即可,我以前用的DiskGenius可能版本太低了,向Ext4分区拷贝文件总是不成功,现在可以了。

2、启动定制

UEFI启动方式定制:

从我的网盘下载 “SurfacePro3-GRUB2启动文件”或者“MacBook-GRUB2启动文件”(其实两个文件除了GRUB启动菜单配置有区别,其它都是一样的),解压得到Boot文件夹,然后根据各自的具体情况用记事本修改配置文件/Boot/grub/grub.cfg。

特别说明一下:我在定制GRUB2时使用了Ubuntu的启动文件,因为这个启动文件是签名的,它可以通过UEFI的安全引导(Secure Boot),这意味着电脑在开启安全引导时可以启动到GRUB2菜单界面,但这仍然有局限,很多指令和insmod仍然是被禁止的,因此,我们的Android-x86如果放在NTFS分区,那么 insmod ntfs 是必须的,这种情况就必须禁用安全引导,如果是放在Ext4分区,那么所有的 insmod 都可以不要,这样就可以开启安全引导,象我的SurfacePro3如果禁止安全引导,开机时整个屏幕都是鲜亮红色背景,很刺眼很不舒服,所以必须放Ext4。

现就我的具体配置为例进行注释,方便大家对照修改。

SurfacePro3启动配置:

Android系统文件路径:

Android-x86官方版:/Android-x86

LineageOS:/LineageOS

RemixOS:/RemixOS

PhoenixOS:/PhoenixOS

grub.cfg文件:

## GRUB2 for Surface Pro3 Boot Manager

set timeout=60

set pager=1

## 下面的insmod,Android如果在NTFS分区只需要保留insmod ntfs,如果在Ext4分区,所有的insmod都可以删除

insmod all_video

insmod exfat

insmod ext2

insmod fat

insmod gfxmenu

insmod gfxterm

insmod iso9660

insmod jpeg

insmod ntfs

insmod part_acorn

insmod part_amiga

insmod part_apple

insmod part_bsd

insmod part_dfly

insmod part_dvh

insmod part_gpt

insmod part_msdos

insmod part_plan

insmod part_sun

insmod part_sunpc

insmod png

insmod xfs

## 加载字体和主题,设置图形模式

loadfont ${prefix}/theme/unicode.pf2

loadfont ${prefix}/theme/DejaVuSansMono-18.pf2

set gfxmode=1280x1024

terminal_output gfxterm

## 加载主题样式

set theme=${prefix}/theme/oxygen/theme.txt

export theme

#### MENU BEGIN ####

## 启动Windows菜单(Win8、Win10都一样)

if search -f -n -s r /EFI/Microsoft/Boot/Bootmgfw.efi; then

menuentry "Windows 8.1 Ent" "$r" --class windows {

set root=$2

chainloader /EFI/Microsoft/Boot/Bootmgfw.efi

}

fi

## 启动Ubuntu菜单

## 注意 linux /vmlinuz root=/dev/sda5 ro quiet splash 中的 /dev/sda5 表示Ubuntu安装在第5分区,修改成你具体的

if search -f -n -s r /vmlinuz; then

menuentry "Ubuntu 18.04LTS" "$r" --class ubuntu {

set root=$2

linux /vmlinuz root=/dev/sda5 ro quiet splash

initrd /initrd.img

}

fi

## 启动Android-x86官方版菜单

if search -f -n -s r /Android-x86/kernel; then

menuentry "Android-x86 64bit" "$r" --class android-x86 {

set root=$2

linux /Android-x86/kernel root=/dev/ram0 androidboot.selinux=permissive quiet SRC= DATA=

initrd /Android-x86/initrd.img

}

fi

## 启动cm-x86(LineageOS)菜单

if search -f -n -s r /LineageOS/initrd.img; then

menuentry "LineageOS 64bit" "$r" --class android-x86 {

set root=$2

linux /LineageOS/kernel root=/dev/ram0 androidboot.selinux=permissive quiet SRC= DATA=

initrd /LineageOS/initrd.img

}

fi

## 启动RemixOS菜单

if search -f -n -s r /RemixOS/initrd.img; then

menuentry "RemixOS 64bit" "$r" --class android-x86 {

set root=$2

linux /RemixOS/kernel root=/dev/ram0 androidboot.selinux=permissive quiet SRC= DATA= logo.showlogo=1

initrd /RemixOS/initrd.img

}

fi

## 启动PhoenixOS菜单

if search -f -n -s r /PhoenixOS/initrd.img; then

menuentry "PhoenixOS 64bit" "$r" --class android-x86 {

set root=$2

linux /PhoenixOS/kernel root=/dev/ram0 androidboot.selinux=permissive quiet SRC= DATA= androidboot.hardware=android_x86

initrd /PhoenixOS/initrd.img

}

fi

## 下面是高级选项子菜单

submenu "Advanced Option >" --class forward {

## 启动Win8PE菜单(如果需要可在我网盘下载)

if search -f -n -s r /Boot/sources/Bootx64.efi; then

menuentry "Windows 8 PE" "$r" --class windows {

set root=$2

chainloader /Boot/sources/Bootx64.efi

}

fi

## 启动Parted Magic菜单(如果需要可在我网盘下载)if search -f -n -s r /Pmagic/pmagic.cfg; then

submenu "Parted Magic 2016 >" "$r" --class gnu-linux {

menuentry "Parted Magic (RAM and Vendor)" "$2" --class gnu-linux {

set root=$2

linux /Pmagic/bzImage64 edd=on vga=normal quiet acpi_backlight=vendor

initrd /Pmagic/initrd.img /Pmagic/fu.img /Pmagic/m64.img

}

menuentry "Parted Magic Official config >" "$2" --class forward {

set root=$2

configfile /Pmagic/pmagic.cfg

}

}

fi

## 下面为搜索本地其它可引导文件,不需要的可删除至下一条注释之间的内容

if [ "${grub_cpu}" == "i386" ]; then

set uefi=bootia32.efi

set fbk=fallback.efi

set grub=grubia32.efi

else

set uefi=bootx64.efi

set fbk=fallback_x64.efi

set grub=grubx64.efi

fi

echo Searching for local OS...

set add_os=0

add_os_if_exist /efi/boot/${uefi} "UEFI OS" os

add_os_if_exist /efi/microsoft/boot/bootmgfw.efi "Windows (7/8/10/2008 etc.)" windows

add_os_if_exist /efi/ubuntu/${grub} "Ubuntu" ubuntu

add_os_if_exist /efi/boot/${fbk} "Fallback" os

add_os_if_exist /efi/centos/${grub} "CentOS" centos

add_os_if_exist /efi/debian/${grub} "Debian" debian

add_os_if_exist /efi/fedora/${grub} "Fedora" fedora

add_os_if_exist /efi/gentoo/${grub} "Gentoo" gentoo

add_os_if_exist /efi/linuxmint/${grub} "Linux Mint" linuxmint

add_os_if_exist /efi/opensuse/${grub} "openSUSE" opensuse

add_os_if_exist /efi/boto/bootx64.efi "OPENTHOS" openthos

add_os_if_exist /boot/grub/grub.cfg "GRUB2 config" grub cfg

add_os_if_exist /boot.cfg "Custom GRUB2 boot" custom cfg

if [ ${add_os} == 0 ]; then

echo

echo No local OS is found

fi

sleep 3

## 固件设置

menuentry "Firmware Settings" --class setup { fwsetup }

}

## 重启电脑

menuentry "Reboot" --class reboot { reboot }

## 关闭电源

menuentry "Power Off" --class shutdown { halt }

#### MENU END ####

## 下面为搜索本地包括USB设备中其它可引导文件相关函数,不需要的可全部删除以下内容

## $1=boot file $2=title $3=--class $4=type

function add_os_if_exist {

for n in 0 1 2 3 4 5 6 7 8 9; do

for p in 1 2 3 4 5 6 7 8 9 cd; do

if [ "$p" == "cd" ]; then

set d=cd$n

elif [ -f (hd$n,gpt$p)$1 ]; then

set d=hd$n,gpt$p

elif [ -f (hd$n,msdos$p)$1 ]; then

set d=hd$n,msdos$p

else

set d=hd$n,$p

fi

if [ "$d" != "$root" -a -s ($d)$1 ]; then

if [ "$4" == "cfg" ]; then

menuentry "$2 at $d >" "$d" "$1" --class "$3" {

set root=$2

configfile $3

}

elif [ "${grub_platform}" == "efi" ]; then

menuentry "$2 at $d" "$d" "$1" --class "$3" {

set root=$2

chainloader $3

}

else

menuentry "$2 at $d" "$d" "$1" --class "$3" {

set root=$2

ntldr $3

}

fi

set add_os=1

echo Found ($d)$1

fi

done

done

}grub.cfg修改完毕检查无误,用DiskGenius工具将Boot文件夹整体复制到ESP分区根目录下,然后打开bootice工具,在 UEFI-->修改启动系列-->添加一个象下图中的启动项:图片:01.jpg

d7f1b620633a73b82506a4fa8bcd53ae.png在添加启动项时要求你选择一个启动文件,但我们无法定位到ESP分区,这时随便选一个文件,然后按图中的样子编辑修改保存,将该启动项上移到最顶端并保持选中,然后保存、关闭、退出,注意启动分区和启动文件一定要正确,重启电脑,出现启动菜单:图片:2.jpg

50d4d337589e92a8a094630ba7c804e7.png

MacBookPro启动配置:

Android系统文件路径:

Android-x86官方版:/AndroidOS/Android-x86

LineageOS:/AndroidOS/LineageOS

RemixOS:/AndroidOS/RemixOS

PhoenixOS:/AndroidOS/PhoenixOS

因为MacBook不存在“安全引导”的问题,所以我就都放在NTFS分区里,关于GRUB2启动配置与上面大同小异,此处不再赘述,仅就遇到的问题说说处理方法:

macOS系统无法通过GRUB2直接引导,如何处理,总不能老是按Alt键开机吧:

在GRUB里仍然写一个启动macOS的菜单项,只要一个exit命令,然后关机状态下按住Alt开机,选择进到macOS,在“偏好设置-->启动磁盘”里选择macOS,然后关机,再按住Alt开机,选择进入Windows(如果你没有安装Windows,用WinPE也可以),然后用bootice将GRUB2启动项设为优先(默认)启动项即可。另外在MacBook上运行Android-x86,一开机亮度就是最大且不能控制,亮度调节划块会显示:

起初我找了个控制亮度的APP,并在系统脚本里添加了启动APP和模拟控制脚本,让系统开机亮度就在正常范围,但效果并不令人满意,严格来说这个APP不是真正控制亮度,而是象给你的屏幕上了层遮光板,但象任务栏和某些部件它又没有遮住,仍然亮得刺眼,试了多个亮度控制APP都是如此。后来通过查阅资料、学习研究找到了一个方法就是在启动菜单里Linux那一行增加一个参数acpi_backlight=vendor 如:

linux /xxxxx/xxxx xxxxxxxx acpi_backlight=vendor

从此亮度正常了,虽然亮度仍然不能调节,但当你在macOS里亮度是多大,在Android里就是多大,完全满足使用。(Ubuntu也存在开机亮度最大,但可调节,启动配置加上这个参数解决问题,仍然可调节)。关于UEFI启动还有一点要知道的:当macOS、Windows或Ubuntu在进行大的更新后,可能会重写引导导致我们的GRUB2没有启动,这时只需要用bootice重新设置一下默认启动项,如果启动项不在了,添加一个即可。

MBR启动方式定制:以ThinkPad_x61为例,Android-x86文件放在Ext4区(经测试放在NTFS分区,RemixOS和PhoenixOS都不能正常启动)

去这里下载最新版本GRUB2:ftp://ftp.gnu.org/gnu/grub/,目前的版本应该是 grub-2.02-for-windows,解压缩到C盘根目录下,得到grub-2.02-for-windows文件夹,再在我的网盘下载“TPX61-GRUB2引导文件”备用,然后管理员方式打开一个命令提示窗口,按下面的步骤进行:

执行下面的命令进到GRUB2软件目录

c:

cd \grub-2.02-for-windows

执行下面的命令获取要安装GRUB2目标盘ID

wmic diskdrive list brief

根据屏幕显示获取一个象这样的字符串:\\.\PHYSICALDRIVE0,这里假设就是我们要安装的盘,如果有多个请确认要安装到哪一个盘

执行下面的命令安装GRUB2

grub-install --boot-directory=c:\.boot \\.\PHYSICALDRIVE0

当显示Installation finished. No error reported. 表示安装成功

关闭命令窗口

解压“TPX61-GRUB2引导文件”将里面的.boot文件夹复制到C盘根目录与c:\.boot合并

记事本打开 c:\.boot\grub\grub.cfg 文件,修改里面的内容符合你自己的配置

重启电脑应该就可以可看到启动菜单了

注意:Windows下的GRUB2安装完并不会生成启动配置文件grub.cfg,所以执行完grub-install 就重启电脑的话,只会进到GRUB2命令状态,不会启动任何操作系统,如果你不小心到了这个状态,执行下面的命令:

如果安装的是WindowsXP,执行:

search -f -n -s /ntldr

ntldr /ntldr

boot

如果安装的是Windows7、8、10,执行:

search -f -n -s /bootmgr

ntldr /bootmgr

boot

本文资源下载:https://pan.baidu.com/s/1vtbgl6fnauRdq2hinE-ZwA  提取码 2o9a

您可能感兴趣的与本文相关内容

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值