GPT allows a large number of partitions on a drive. In an attempt to reduce the effect that later partitioning changes might have on deployed systems, we are trying to enumerate the known partitions first, while leaving room for future growth. Here’s the current layout:

 Partition Usage  Purpose
 1  user state, aka “stateful partition”  User’s browsing history, downloads, cache, etc. Encrypted per-user.
 2  kernel A  Initially installed kernel.
 3  rootfs A  Initially installed rootfs.
 4  kernel B  Alternate kernel, for use by automatic upgrades.
 5  rootfs B  Alternate rootfs, for use by automatic upgrades.
 6  kernel C  Minimal-size partition for future third kernel. There are rare cases where a third partition could help us avoid recovery mode (AU in progress + random corruption on boot partition + system crash). We decided it’s not worth the space in V1, but that may change.
 7  rootfs C  Minimal-size partition for future third rootfs. Same reasons as above.
 8  OEM customization  Web pages, links, themes, etc. from OEM.
 9  reserved  Minimal-size partition, for unknown future use.
 10  reserved  Minimal-size partition, for unknown future use.
 11  reserved  Minimal-size partition, for unknown future use.
 12  EFI System Partition  Contains 64-bit grub2 bootloader for EFI BIOSes, and second-stage syslinux bootloader for legacy BIOSes.

Note that the reserved partitions will actually be present on the image, so that the partition numbering remains constant from now on. Each minimal-size partition (including the C kernel and C rootfs) is only 512 bytes, and is shoved into some space lost to filesystem alignment (between the primary partition table and the stateful partition). 64M of empty space is set aside for use by those reserved partitions if they ever need it.

Bootable USB keys have the same layout, except that kernel B and rootfs B are minimal-size, and partition 1 is limited to 720M. The total USB image size is around 1.5G. When the USB image is installed on a fixed drive, the B image is duplicated from the A image, and partition 1 is made as large as possible so that the entire disk is in use.

由于刷custom firmware安装windows10,原来的ChromeOS已经完全删除了。用如下方法,可以在外置存储器上安装ChromeOS。

首先安装ChromiumOS。

在网站:https://chromium.arnoldthebat.co.uk/ 下载ChroiumOS的镜像,用软件写入到SD卡中。我选择的镜像是

https://chromium.arnoldthebat.co.uk/special//Camd64OS_R69-10895.B-Special.7z

写入后,不需要任何设置,该SD卡可以直接启动 Lennovo N22,并进入ChromiumOS。但是声卡和trackpad不能使用。这样是为什么需要安装ChromeOS的主要理由。

在确认ChromiumOS安装好之后,开始安装ChromeOS。

参考网站:https://github.com/incod3x/chromefy – not valid any more 2019.09.28 updated

https://cros-updates-serving.appspot.com 2019.09.28 updated

1、首先去网站:http://chrome.qwedl.com/ 搜索符合本机型号的系统,我选择镜像是:

https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_10895.78.0_reks_recovery_stable-channel_mp-v4.bin.zip

可以用其它速度快的电脑下载,并且解压缩。拷贝解压缩后的文件到GalliumOS的U盘里面。之后用GalliumOS的U盘启动电脑。

2、启动后进入刚刚考入的镜像文件的目录,键入命令:

losetup -fP ./chromeos_10895.78.0_reks_recovery_stable-channel_mp-v4.bin
该命令可以让linux识别镜像文件,并且把镜像文件中的每一个img镜像影射为loop系统的分区。

3、挂接上SD卡的5号分区 (原ChromiumOS镜像中没有这个分区,需要新建此分区,2G大即可),此举的目的是为了保留已经安装的ChromiumOS。但是如果不需要保留ChromiumOS系统,参见3A条目。
先在/mnt目录里面建立sda5目录,把SD卡上的5号分区挂在这个目录上(SD卡本身编号或许k0,k1,但必须是第五号分区 p5):
mount /dev/mmcblk1p5 /mnt/sda5

3A:挂接上SD卡上的3号分区,删除分区里所有文件。为区分方便,在/mnt目录下建立sda3目录。另外可以在 GalliumOS系统内把用户分区扩大。

mount /dev/mmcblk1p3 /mnt/sda3

rm -rf * /mnt/sda3

4、挂接镜像文件的3号分区:
在/mnt目录里建立lp3目录(目录名字随便取)
可以先用losetup命令查找镜像文件挂接的位置,比如我的挂在/dev/loop0上,则挂接命令如下:

mount /dev/loop0p3 /mnt/lp3 -o loop,ro

5、拷贝文件(如果不保留ChromiumOS,参见5A):

cp -av /mnt/lp3/* /mnt/sda5
rm -rf /mnt/sda5/etc/modprobe.d/alsa-skl.conf
sudo sed 0,/enforcing/s/enforcing/permissive/ -i /mnt/sda5/etc/selinux/config
sync

5A:不保留ChromiumOS,拷贝文件到/mnt/sda3

cp -av /mnt/lp3/* /mnt/sda3
rm -rf /mnt/sda3/etc/modprobe.d/alsa-skl.conf

Change the word in file /mnt/sda3/etc/selinux/config from enforcing to permissive using following command:

sudo sed 0,/enforcing/s/enforcing/permissive/ -i /mnt/sda3/etc/selinux/config

or edit the file config file in the /mnt/sda3/etc/selinux/ directly

sync

6、用ChromeOS的内核取代ChromiumOS内核
在/mnt目录建立两个目录 chromium, chrome,然后挂接两个系统的 EFI 分区(一定是p12分区)
mount /dev/loop0p12 /mnt/lpefi -o loop,ro
mount /dev/mmcblk1p12 /mnt/sdefi
进入/mnt/lpefi目录,用内核vmlinuz.A 替换 /mnt/sdefi目录里的内核vmlinuz.A。

7、重启电脑,在重启后立即拔掉GalliumOS的U盘,用SD卡启动。进入grub界面后选择第二项启动。应该就可以看到ChromeOS的启动画面了。

另外,修改SD卡的EFI分区里的grub配置文件,可以制定ChromiumOS或者ChromeOS作为默认启动系统。


								

1、联想笔记本 N500

Intel Pentium T3400 @ 2.16GHz

Average CPU Mark
Socket: PPGA478
Clockspeed: 2.2 GHz
No of Cores: 2
Typical TDP: 35 W

Other names:  Intel(R) Pentium(R) Dual CPU T3400 @ 2.16GHz
CPU First Seen on Charts:  Q1 2009
CPUmark/$Price:  12.39     Overall Rank:  2017
Last Price Change:  $89.95 USD (2018-04-19)
1114

Single Thread Rating: 741
Samples: 368*
*Margin for error: Low

 

2、Acer的HTPC

AMD E-450 APU

Average CPU Mark
Socket: FT1
Clockspeed: 1.7 GHz
No of Cores: 2
Typical TDP: 18 W

Other names:  AMD E-450 APU with Radeon(tm) HD Graphics
CPU First Seen on Charts:  Q2 2011
CPUmark/$Price:  NA     Overall Rank:  2218
Last Price Change:  NA
767

Single Thread Rating: 431
Samples: 1051*
*Margin for error: Low

 

3、 联想 N22 Chromebook

Intel Celeron N3060 @ 1.60GHz

Average CPU Mark
Description: Intel HD Graphics 400

Clockspeed: 1.6 GHz
Turbo Speed: 2.5 GHz
No of Cores: 2
Typical TDP: 6 W

Other names:  Intel(R) Celeron(R) CPU N3060 @ 1.60GHz
CPU First Seen on Charts:  Q2 2016
CPUmark/$Price:  NA     Overall Rank:  2102
Last Price Change:  NA

985

Single Thread Rating: 539
Samples: 329*
*Margin for error: Low

GalliumOS是一款支持chromebook非常好的专为chromebook开发的Linux 发行版。对硬件的支持几乎完美,在Lenovo N22上使用没有任何问题。

Lenovo N22在使用了 mr. chromebox的full rom之后,可以完美安装windows10。由于常常要使用linux,所以在电脑内部存储里面安装了windows10之后,需要在u盘上安装GalliumOS。这个操作也很容易,但是对于N22笔记本,需要安装GalliumOS2.1版,这样才可以支持所有硬件,比如键盘,声卡。链接如下:

https://galliumos.org/releases/nightly/galliumos-braswell-xenon-20171227T072217Z.iso

发此文时候,galliumOS 3.0版已经推出早期测试版。但本文仍然根据2.1版。

下载iso文件后制作安装盘,方法如下:

  • We recommend Etcher  or Win32DiskImager
  • Rufus is also fine, but be sure to select "Write in DD-Image mode"
  • Do not use UNetbootin
  • Do not use YUMI
  • Do not use ISO to USB

插入刚刚制作 的U1启动盘和待安装linux的U2盘后,选择安装位置,以及启动位置。安装完成后,windows和linux都可以正常启动。

但是,在未插入刚刚安装好的galliumOS的U2盘的情况下启动windows10时,电脑屏幕会发生极短的闪烁,这是因为电脑在启动windows10之前快速运行了一下linux 的boot loader,之后再启动windows 10。这个过程虽无大碍,但还是不如直接启动windows10。

这个问题出在安装linux时boot loader安装的启动位置上。GalliumOS使用refind作为启动管理软件(boot loader),这个软件类似grub,但更简练。但是经过安装发现,在安装galliumOS时候,即使选择U2盘为启动盘,启动引导软件仍然固执的把内部硬盘作为启动盘来安装。并且把应该mount在 U2盘上EFI分区的/boot/efi目录错误的mount在内部盘上的 EFI分区。

以下是该问题解决方法。

1、解决windows的启动问题,删除内部盘中的refind boot loader,恢复windows10本身启动:

用windows 10 安装盘启动电脑,进入修复选项,选择 command prompt,按照如下命令完成对windows10 EFI分区的修复。

diskpart

list disk
select disk # Note: Select the disk where you deleted the EFI System partition.
list partition
select partition X #Note: Select the partition where you deleted the EFI System partition.
format override quick fs=fat32 #Note: delete all existing files in this partition.
list volume #Note: showing the volume letter of the Windows OS partition.

bcdboot X:\windows Note: Replace “X” with the volume letter of the Windows OS partition.

至此,windows10恢复了本身启动方式,再启动时不再有闪烁现象发生。

2、解决linux的启动问题。

以下把galliumOS安装盘称为U1,安装了GalliumOS的盘称为U2。

在恢复了windows10的启动后,插入U2,系统只能进入windows10,但是不能进入linux。说明U2启动无效。以下为修复方法:

插入U1启动电脑,打开terminate命令行界面。把U2的/boot/efi目录mount到U2的EFI分区。

下载refind: http://sourceforge.net/projects/refind/files/0.11.3/refind-bin-0.11.3.zip/download

解压缩后安装,在安装时可能会出现缺少某软件错误,用apt-get install ???安装该软件后再次安装。应该不会再有错误提示。

安装后,进入U2的/boot/efi目录,也就是U2的EFI分区,刚刚refind已经安装到该目录。建立BOOT目录,把refind里的所有内容拷贝到该目录下,并且更改refind64.efi文件名为BOOTX64.efi。所有目录和文件注意大小写。

运行命令:

ls -la /dev/disk/by-uuid

获得U2盘EFI分区的UUID。 进入U2的/etc目录,修改fstab文件,把EFI对应的UUID值修改为刚刚得到的U2盘EFI分区的UUID值。 重启电脑,卸下U1,仅保留U2,可以发现U2就可以作为启动盘正常启动了。

 

首先,macOS本身没有T430自带的Intel无线网卡驱动程序,所以macOS原生不支持T430的无线网卡。那么是否可以给T430的Intel网卡写一个macOS下的驱动程序呢?不行。这是由于Intel的网卡不开源,硬件细节外界不得而知,第三方无法写驱动程序。当然除非Intel自己为macOS写驱动程序,但Intel并没有这个打算。

那么是否可以给T430换一个macOS支持,有驱动程序的无线网卡呢?也很困难,或者不行。这是因为T430本身在BIOS里有硬件白名单限制,不在白名单里的设备不能在电脑中使用。关于无线网卡,T430的白名单如下:

Below is the list of adapters which will support for ThinkPad T430.
Intel® 82579LM Gigabit Network Connection
11 a/b/g/n
Intel® Centrino® Advanced-N 6205
Intel® Centrino® Wireless-N 2200
Intel® Centrino® Ultimate-N 6300
PCIe Half Mini Card
ThinkPad 11 b/g/n
Wireless WAN upgradable on selected models.
Qualcomm® Gobi™ 3000 chipset
Qualcomm® Gobi™ 4000 chipset – AT&T on selected models
PCI Express Mini Card
Bluetooth 4.0 Wireless

以上的网卡,没有一款是macOS支持的。因此换上这些网卡中的任何一款也无法解决无线上网问题。

最后,T430无线网卡上网的最终解决方案是什么呢?参考连接:https://github.com/ThiagoSchetini/AR9285-rebranding

简单说,选一款不在T430白名单但是macOS原生支持,或者有驱动程序的网卡,例如dual band Atheros AR5BHB92 AR9280 wireless card。此网卡不再白名带里,本身不能直接在T430上使用。修改该网卡的EEPROM中的数值为某款在白名单的某款网卡,以此骗过T430的BIOS的开机检测,在开机后,用软件修临时改回原来网卡的数值。这样macOS就可以正常使用这个无线网卡了。

缺点是麻烦,需要一个没有无线网卡限制的机器,把这个网卡装进去,利用Ubuntu来刷EEPROM。另外一个缺点是这个修改后的网卡可能只能在macOS里用,因为网卡EEPROM已经被修改成另外的网卡信息,但是windows可能没有软件临时改回原来网卡数值。