博主折腾了一星期这东西,到现在都还有些坑没解决(最后面会讲)。不过最起码系统装上了,可以用了,看到这桌面惊艳了,再点下左上角表示人间值得。

其实我是装了windos 10、macos 和kali三系统废话不多说开始教程:

一、准备工作

特别注意:

先把macbook上的数据用timemachine备份好(需要一个外接的存储)、这样你会放心去搞

硬件:16G+ 的U盘 、type-c转USB至少3口的转接硬件、有保障的电源、外接有线键盘一个、鼠标一个

软件:

kali linux install 的镜像iso

下载地址:https://www.kali.org/downloads/ *整最新的install的就行

rEFInd Boot Manager 软件

http://sourceforge.net/projects/refind/ 点击该链接下载压缩包,解压后双击refind-install安装即可

mac硬盘分区:先将mac分出50G以上的区

二、制作U盘启动盘

插上U盘

1.需要先对U盘进行操作,而diskutil就是用来对Mac OS的磁盘操作的命令

diskutil:操作本地磁盘,可以对磁盘进行卸载,挂载等操作。

列出当前挂载的磁盘: diskutil list

dev/disk0 (internal, physical):#: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *251.0 GB disk0 1: EFI EFI 209.7 MB

disk0s1 2: Apple_CoreStorage Macintosh HD 250.1 GB disk0s2 3: Apple_Boot Recovery HD 650.0 MB

disk0s3 /dev/disk1 (internal, virtual): #: TYPE NAME SIZE IDENTIFIER 0: Apple_HFS Macintosh HD +249.8 GB

disk1 Logical Volume on disk0s2 45CD1187-14DE-4203-9895-FBB1B3770F1E Unencrypted

/dev/disk2 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: Apple_partition_scheme *16.1 GB

2.其中/dev/disk2就是U盘。 需要先卸载掉U盘,然后在把安装文件写入到U盘中,

这样就需要用到卸载命令: diskutil unmountDisk /dev/disk2

再次使用diskutil list命令确认不会显示出disk2了

3.然后把安装文件拷贝到U盘中、制作启动盘

执行命令 sudo dd if=./kail-2020.3-xxxxxx.iso of=/dev/disk2 bs=2m

4.安装好rEFInd Boot Manager

5.禁用系统完整保护

重启机器开机按住option、能够看到硬盘界面时按command+r进入恢复模式

点击实用工具,点击终端输入命令:csrutil disable; reboot

Mac会重启,系统保护已经取消

二、开始用U盘安装系统

以上完成后重启会进入类似如下界面

1.点击右下角有个U盘图标的大图标

2.第一个图形界面安装直接enter

3.这时候你会发现你的键盘和触控板没办法使用了,不要慌,安装后也都会无法使用(这个我暂时还没解决)

外接键盘选语言enter、汉语英语都可以

4.国家区域选择enter

5.语言选择enter

6.这个地方报错之类的也不用太理会,如果出现问你需不需要外置设备xxxxx选否就好

7.这个填名字无碍enter

8.域名这个空着也行enter、用户名密码先填个简单的

9.中间还会有让你配置无线网络的,都是默认选项wifi要选你自己的wifi及对应密码或者手机开热点,enter、这里磁盘一定不要选错(无图)、选最大的连续空间那个、然后选择你分区来的50G的空间的那个盘确定好后进入下图点是

10.enter

11.这里不要动保持默认就好、要确定好包含xfce、之后enter

三、解决网络问题更改软件包源

重点来了:

这里正常需要很长时间,而且会失败。

这是正常的,因为使用的源和国内网络不搭或者可能会被防火墙拦住、不要慌失败后跳回主界面的配置软件包管理然后继续enter下来回到这个界面

这里还会失败一次正常情况。

接下来跳回主安装界面时选择下面的运行shell进入shell模式

执行命令:

chroot /target

nano /etc/apt/sources.list

此时可以看到文件里应该存有一行kali的官方源(如果没有输入ctrl+x然后exit两次返回配置软件包管理再失败一次)

原来的那一行不要动放在那里另起一行、输入下面4行源

#aliyun 阿里云

deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib

deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib

# ustc 中科大

deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

输入完毕按ctrl+o、ctrl+x写入然后退出

nano /etc/apt/sources.list再确认下是否写入成功

输入两次exit+enter退出shell界面

重要: 此时直接选安装软件,不要回到配置软件包或者上面的其他的选项、不然你要再重新配置了

接下来就考验你的网络情况了,正常重复1-2次安装即可成功

四、收尾

五、安装成功了,但是烦恼才刚开始

新版本一般都安装上就可以联网了,老版本可能需要查资料修复网卡问题。

首先,输入法安装

1.使用命令更新 apt-get update && apt-get upgrade  同步源的索引,升级软件包

2.使用命令 apt-get install fcitx 安装输入法框架

3.使用命令 apt-get install fcitx-googlepinyin  安装谷歌输入法

4.使用命令 reboot ,重启系统

5.点击菜单设置、点击ALL---点击小企鹅输入法(即输入法框架)

默认输入法为EnglishUS(根据系统),点击 +号

取消对勾---搜索谷歌

将谷歌输入法置于第一输入、然后测试一下

最后,接下来有几个问题

1. Wifi

这款MacBook使用的是Broadcom无线板,虽然不是很好,但至少我们能获得不错的wifi。内核使用的brcmfmac模块有一个问题。以下是解决方法。

1.下载 https://gist.github.com/cristianmiranda/6f269797b62076c3414c3baa848dda67#file-brcmfmac43602-pcie-txt

2.之后 cp brcmfmac43602-pcie.txt /lib/firmware/brcm

Wifi正常工作,但有几个问题你需要注意:

1.连通性信号不是最好的。
2.在挂起/唤醒后,5千兆赫网络是不可见的,即使他们是,你不能连接到他们。2.4 GHz工作正常

2. Spoof macOS

我们需要让笔记本电脑认为她将启动macOS,否则会有一些组件无法供电,包括集成的英特尔GPU。为此,我们将使用自定义EFI文件如下:cd /tmp
# 更多 at https://github.com/0xbb/apple_set_os.efi/issues/20#issuecomment-557352747
wget https://github.com/0xbb/apple_set_os.efi/files/3877561/apple_set_os.zip
unzip apple_set_os.zip # As root...
sudo su
mkdir -p /boot/efi/EFI/custom
mv /tmp/apple_set_os.efi /boot/efi/EFI/custom

 我们需要编辑GRUB
sudo su
nano /etc/grub.d/40_default # Add the following lines:
search --no-floppy --set=root --label EFI
chainloader (${root})/EFI/custom/apple_set_os.efi
boot # Update grub
update-grub

**Note:*

如果你喜欢使用rEFInd,那完全可以。只要记得取消注释 "spoof_osx_version" 在 refind.conf 文件中

更多:rEFInd's documentation site.*

3. 切换到 iGPU

这款笔记本电脑有两个GPU板,一个是集成的Intel显卡,另一个是ATI专用的Radeon显卡。由于没有驱动这张卡工作正常,我们将不得不切换到集成的一个,然后关闭专用的GPU电源。

sudo su

# Blacklist amdgpu
echo "blacklist amdgpu" > /etc/modprobe.d/blacklist-amdgpu.conf # 切换到 GPU
cd && git clone https://github.com/0xbb/gpu-switch
cd gpu-switch
sudo ./gpu-switch -i
  • Reboot
  • 现在我们将加载amdgpu模块并正确关闭
sudo su
gpu-manager | grep 'amdgpu loaded? no' && sudo modprobe amdgpu || echo 'AMD GPU already loaded'
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

更多
https://github.com/Dunedan/mbp-2016-linux/issues/6#issuecomment-416015734

**Note:* 每次重新启动时重复最后三个步骤(可以自动进行)*

4. 音频

音频不工作,以下解决

sudo su
cd /tmp
sudo apt-get install wget make gcc linux-headers-generic
git clone https://github.com/leifliddy/snd_hda_macbookpro.git
cd snd_hda_macbookpro
./install.cirrus.driver.sh

**Note:*

重新启动系统更改生效

5. Touchbar

sudo apt-get install git dkms

cd /tmp
echo -e "\n# macbook12-spi-drivers\napplespi\napple_ib_tb\nspi_pxa2xx_platform\nintel_lpss_pci" >> /etc/initramfs-tools/modules git clone https://github.com/roadrunner2/macbook12-spi-driver.git
cd macbook12-spi-driver
git checkout touchbar-driver-hid-driver
dkms add .
uname -r # check kernel version
dkms install -m applespi -v 0.1 -k 5.3.0-24-generic # replace this with your kernel version # lsinitramfs /boot/initrd.img-5.3.0-24-generic | grep -i "dkms/apple"
lib/modules/5.3.0-24-generic/updates/dkms/apple-ibridge.ko
lib/modules/5.3.0-24-generic/updates/dkms/apple-ib-tb.ko
lib/modules/5.3.0-24-generic/updates/dkms/applespi.ko
如果你想让f键在默认情况下总是开着,并且Fn按钮可以从f键切换到特殊键,那么使用下面的命令(如果不是,fnmode=1):echo 'options apple_ib_tb fnmode=2' | sudo tee /etc/modprobe.d/apple_ib_tb.conf
echo 'options apple_ib_tb idle_timeout=60' | sudo tee /etc/modprobe.d/apple_ib_tb.conf
update-initramfs -u -k 5.3.0-24-generic # replace this with your kernel version

你也可以交换fn和一个控制键:

echo 'options applespi fnremap=1' | tee /etc/modprobe.d/applespi.conf
update-initramfs -u -k 5.3.0-24-generic # replace this with your kernel version

或重新映射到任何其他键

# modinfo applespi | grep -w fnremap
parm: fnremap:Remap fn key ([0] = no-remap; 1 = left-ctrl, 2 = left-shift, 3 = left-alt, 4 = left-meta, 6 = right-shift, 7 = right-alt, 8 = right-meta) (uint)

Bonus #1 - 键盘

这里有一个如何重新映射键盘的指南.
https://medium.com/@petrstepanov/a-macos-like-keyboard-remap-on-ubuntu-linux-cae1d108a97

Bonus #2 -  触控板

Trackpad在Linux上不是很好,这里是如何改进它的。
https://int3ractive.com/2018/09/make-the-best-of-MacBook-touchpad-on-Ubuntu.html


不支持

  • Built-in microphone
  • Hibernation
  • Audio after suspend
  • 5 GHz wifi networks after suspend

支持情况

查看https://github.com/Dunedan/mbp-2020-linux

感谢!

如果你对这个话题有任何疑问或者有任何新的发现,请不要犹豫,立即发表评论。

非常感谢所有让这一切成为可能的人。令人难以置信的是,这么多的人花时间在这上面却不求任何回报

参考:

Macbook 安装kali linux 双系统 2020.3 超详细的更多相关文章

  1. 笔记本在安装Windows+Linux双系统后,进入Windows时花屏的解决办法

    问题:在笔记本安装双系统(Windows7+Ubuntu14.04)[先安装Windows,后安装Ubuntu]后,进入Windows时出现了花屏. 问题原因:笔记本只有集显,在系统启动时会先加载Ub ...

  2. win10安装kali组双系统

    一.镜像下载: 根据需求下载自己需要的版本 从官网下载kali 2018.2 的安装包:https://www.kali.org/downloads/ 二.烧录: 这里推荐用 win32 disk i ...

  3. mac安装linux双系统的吐槽

    [First day] 尝试安装mac - linux 双系统 首先,尝试的是ubuntu16.06版本,要把双系统安装至电脑硬盘512G SSD中, *** 分盘 1.1 打开实用工具中的磁盘管理工 ...

  4. [双系统linux] ----双系统切换导致系统时间错误

    安装了linux双系统以后,发现每次双系统切换以后系统时间总会错误. 原因:Linux和win7(win10)双系统时间错误问题 时间相差8小时 MAC/linux 将系统硬件时间看待为UTC, 即U ...

  5. Win7上安装Linux双系统

    今天帮同学在Win7上安装Linux,感觉一篇教程很不错,mark一下 原地址:Win7下U盘安装Ubuntu14.04双系统步骤详解 一.前期准备 1.大于2G的U盘一个(我的系统盘制作完成后大约占 ...

  6. 【解决方法】安装Win7和linux双系统后,linux报错“无法分配所提交的分区 not enough free space on disks”问题,以及win7无法启动“BootMGR image is corrupt....”问题

    近日,在笔记本上重装了Win7 企业版(64位)后,想装个linux双系统,于是开始安装 centOS 6.2(光盘安装) 硬盘分了一个主分区(c盘),一个扩展分区(3个逻辑分区:d,e,f盘),然后 ...

  7. 如何安装win10+Red Hat Enterprise Linux双系统?

    1,如何安装win10+Red Hat Enterprise Linux双系统???? 有很多人(没做过调查,可能就我自己想装吧)想要安装Red Hat Enterprise Linux系统,但是又不 ...

  8. 安装Windows 和 Linux双系统(vmware) Centos7

    这里我安装的是Windows + Centos 7,如果是要安装Centos 6,步骤一样 一.安装Windows和Linux双系统需要先安装Windows然后安装Linux 解释:这里解释下为什么要 ...

  9. 手把手教你Windows Linux双系统的安装与卸载

    作者:-叶丶知秋 链接:https://blog.csdn.net/fanxueya1322/article/details/90205143 转载请保留出处 良许前言: 后台突然有很多小伙伴留言想看 ...

随机推荐

  1. ORM All In One

    ORM All In One ORM Object Relational Mapping https://en.wikipedia.org/wiki/Object-relational_mapping ...

  2. node.js & read argv

    node.js & read argv https://nodejs.org/docs/latest/api/process.html https://flaviocopes.com/node ...

  3. TYLER ADAMS BRADBERRY:人到中年,要学会戒掉这三点

    在一些国家的一些人当中,总会出现这样一个问题"中年危机".而到了中年,人与人间的差距似乎也变得越来越大.有人说,人到中年,是一个门槛,有的人迈过去了,有的人没迈过去.但是,其实实话 ...

  4. Spring学习过程中遇到的No bean named 'beanId' is defined报错

    ApplicationContext applicationContext= new ClassPathXmlApplicationContext("bean.xml");Obje ...

  5. 使用python编写量子线路打印的简单项目,并使用Sphinx自动化生成API文档

    技术背景 该文章一方面从量子线路的打印着手,介绍了一个简单的python量子线路工程.同时基于这个简单的小工程,我们顺带的介绍了python的API文档自动化生成工具Sphinx的基本使用方法. 量子 ...

  6. SpringBoot配置本地文件映射路径

    1.前言 在springboot的项目中,如果需要通过项目方式访问本地磁盘的文件,不仅可以使用nginx代理的方式,还可以使用springboot配置的方式进行访问. 实例原因说明:由于上传的图片是要 ...

  7. Python和JavaScript在使用上有什么区别?

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://www.freecodecamp.org/news/python-vs-javas ...

  8. 百度AI api使用

    # *********************************baidu-api-通用文字识别******************************************** # im ...

  9. 一文让你对js的原型与原型链不再害怕、迷惑

    目录 原型与原型链的详细剖析 原型 显式原型prototype 隐式原型__proto__ 显式原型prototype与隐式原型__proto__的关系 原型链(隐式原型链) 探寻原型链的尽头 完整详 ...

  10. Visual Studio Code运行Python代码

    目录 步骤 参考 用Pycharm开发Python程序是最好的选择,就是有点贵.基于这个背景,我就尝试一下别的IDE,看到很多人在用免费.开源的Visual Studio Code,下面是配置并运行P ...