肇鑫的日常博客

日常

More Details On Installing macOS Monterey 12 Beta On Unsupported Macs

If you want to install macOS Monterey on your Mac and you Macs are not officially supported by Apple. I suggest you to follow this video.

Monterey on Unsupported Mac - OpenCore Legacy Patcher! Install the Latest Beta on 2012-2014 Macs!!!

I installed two of my Macs to macOS Monterey 12 beta 2 today, and I found for beginners that video was not enough. There were also something important that were missing. That was this article for.

Foundation Knowledges

Before installing the system, it is better to know how the booting process works.

Normal Boot With a Internal SSD

normal booting

When a user presses the power button, a Mac searches all disk partitions. The EFI partitions normal are hidden and load first by default. So If a user chooses to boot from the internal SSD, the EFI are loaded first and then the APFS partition.

There are hardware related drivers on the EFI and this affects the macOS that loads after EFI. This is very important. So keep the EFI of you internal SSD and don't override them unless you are 100% certain.

Booting With Installing USB Disk

booting with usb disk

After a user presses the power button, the user hold the Options button of the keyboard until a list shows. The list shows the Internal SSD, the EFI and macOS Monterey Installer on the USB Disk as well.

The user has to choose the EFI first then choose the macOS Monterey Installer. If the user chooses the Installer first, the system will show no disk error as the driver is not ready.

Installing macOS To External SSDinstalling to external SSD

Installing to external SSD is as easy as to choose the external SSD. However, after installing, you should install the EFI by OpenCore Legacy Patcher to the external SSD as well.

dual booting

Conclusion

Installing macOS on an unsupported Mac means installing both EFI and macOS on the Mac. Without the EFI, the Mac won't boot properly with the new macOS.

Others

You will need at least 35GB free space to install macOS Monterey 12 beta 2.

For your USB disk, partition it in GUID format. It is request to use EFI with GUID.

For iMac 5K users, DO NOT install EFI on your internal SSD. Or your screen will only get resolution at 3840x2160 most, even on macOS Big Sur 11.4. That is because currently the EFI by third-party can't do as well as Apple's.

Ubuntu 20.04下安装Nginx与Trojan

原以为20.04的安装会比18.04方便很多。但是没想到坑也不少。

安装Nginx

Ubuntu 18.04自带的Nginx本身没有开启ngx_stream_ssl_preread_module。我们安装Nginx官方提供的版本,这个版本开启了所有的可开启扩展。

sudo vi /etc/apt/sources.list

在文件最下面添加并保存

# for latest nginx
deb http://nginx.org/packages/mainline/ubuntu/ focal nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ focal nginx

添加服务器签名,签名在这里nginx_signing.key

wget http://web.archive.org/web/20180805232520/http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key

安装Nginx并开启防火墙端口

因为防火墙默认是关闭的,所以ufw的那步可以不做。

sudo apt update
sudo apt install nginx
sudo ufw allow 'Nginx Full'
sudo systemctl start nginx
sudo systemctl nginx
sudo systemctl enable nginx

你现在可以打开浏览器,然后输入vps的ip地址,如果看到了nginx的欢迎界面,就代表nginx配置成功了。

配置Nginx多站点

单独安装的nginx,只包含一个最基本的配置,多站点的文件夹默认都没有配置。我们需要手动建立文件夹。

mkdir -p /etc/nginx/sites-available
mkdir -p /etc/nginx/sites-enabled

然后编辑nginx.conf文件,将后者加入其中

vi /etc/nginx/nginx.conf

include /etc/nginx/conf.d/*.conf;,之后插入一行,粘贴include /etc/nginx/sites-enabled/*;

保存并退出。

假设你有一个网站叫example.com,网页位置在/var/www/html/example.com/html。新建一个配置文件。

sudo vi /etc/nginx/sites-available/example.com

内容如下

server {
    listen 80;
    listen [::]:80;

    server_name example.com www.example.com;

    root /var/www/html/example.com/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

我们不用添加443端口,因为等下添加证书的时候,Certbot会帮我们自动生成新的配置文件。

将网站配置生效

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled
sudo systemctl reload nginx

参考上面的步骤,添加你所有的站点。之后,再额外添加一个站点,用于Trojan的识别。

最后添加的站点,一定要是一个不需要用的二级域名,而不要使用一级域名。因为我发现Nginx的预读有bug。如果你使用了一级域名,那么它的二级域名也都会匹配。这将导致错误。
一级域名指的是example.com这种,二级指的是mail.example.com这种。

这里我们假设额外配置一个叫tro.example.com的二级域名站点。

为Nginx添加SSL证书

通过浏览器访问网站https://certbot.eff.org,选择Nginx和Ubuntu 20.04,安照网站的提示安装certbot。

sudo apt update
sudo apt install snapd
sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

申请证书

sudo certbot --nginx

按照提示进行操作。完成之后,你再通过浏览器访问网站,你会发现已经是https的了。

安装Trojan

虽然20.04自带了trojan,但是经过我的测试,20.04自带的trojan无法与nginx共同运行。trojan无法正常启动。所以,我们还是通过老办法进行安装。
如果你尝试了自带的trojan。自带的安装之后,配置文件在/etc/trojan。而不是/usr/local/etc/trojan。

sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)"

修改Trojan配置

sudo vi /usr/local/etc/trojan/config.json

找到"local_port",将443,改成4433或者你希望的端口。
找到"password",修改为你想要设置的密码。
找到"ssl",将"cert"设置为“/etc/letsencrypt/live/example.com/fullchain.pem"。将"key"设置为"/etc/letsencrypt/live/example.com/privkey.pem"。

保存并退出。运行Trojan。设置为开机启动。

sudo systemctl start trojan
sudo systemctl enable trojan

配置Trojan+Nginx共存

sudo vi /etc/nginx/nginx.conf

在events和http两段之间,插入

stream {
    map $ssl_preread_server_name $name {
        tro.example.com trojan;
        default nginx;
    }
    upstream trojan {
        server 127.0.0.1:4433;
    }
    upstream nginx {
        server 127.0.0.1:4443;
    }
    server {
        listen 443;
        listen [::]:443;
        proxy_pass $name;
        ssl_preread on;
    }
}

保存,修改之前设置的所有网站的设置。打开/etc/nginx/sites-enable/中所有的网站的配置,将所有的443端口,改成4443端口,然后保存。

sudo systemctl reload nginx

在好多支持Trojan的客户端中,域名是可选的。但是由于我们需要使用域名来进行跳转,所以在设置客户端时,域名是必填的,必须填写为tro.example.com
Module ngx_stream_ssl_preread_module

其它

Ubuntu 18.04下将Apache2多站点改为Nginx多站点,同时开启Trojan

ClashXR配置Trojan

《花木兰》中文IMAX 3D版观影感受(剧透版)

p2616770846

这篇主要谈谈剧情。先来看看《木兰辞》:

木兰辞

第一段

唧唧复唧唧,木兰当户织。不闻机杼声,惟闻女叹息。

木兰织布的情节,电影里是没有的。电影里木兰从小就是一个活泼好动的孩子。还因为捉鸡上了房顶。

第二、三段

问女何所思,问女何所忆。女亦无所思,女亦无所忆。昨夜见军帖,可汗大点兵,军书十二卷,卷卷有爷名。阿爷无大儿,木兰无长兄,愿为市鞍马,从此替爷征。

东市买骏马,西市买鞍鞯,南市买辔头,北市买长鞭。旦辞爷娘去,暮宿黄河边,不闻爷娘唤女声,但闻黄河流水鸣溅溅。旦辞黄河去,暮至黑山头,不闻爷娘唤女声,但闻燕山胡骑鸣啾啾。

“阿爷无大儿,木兰无长兄”结合后面的“爷娘闻女来,出郭相扶将;阿姊闻妹来,当户理红妆;小弟闻姊来,磨刀霍霍向猪羊。”我们可以知道,木兰已知的人物关系,是有健在的父、母、姐、弟。木兰同辈排行在中间。但是电影中,木兰的父亲只有两个女儿,并且木兰是大女儿。

电影中木兰家中就有马,而且是匹好马,名字叫“黑风”。并且木兰的父亲有一把宝剑,上面刻着“忠勇真”三个字。

第四段

万里赴戎机,关山度若飞。朔气传金柝,寒光照铁衣。将军百战死,壮士十年归。

这段的“将军百战死,壮士十年归。”是比兴的手法。十年是虚指,不是实际用了十年。诗的后面有提到“同行十二年,不知木兰是女郎。”这个是实指。一共12年,这是长时间的战争。而电影中大大的简化了。变成了一个营的兵力,参与了两场战斗。一场是和敌军保护商路的战斗。一场是迅速回防救驾的京城保卫战。

其余部分

归来见天子,天子坐明堂。策勋十二转,赏赐百千强。可汗问所欲,木兰不用尚书郎,愿驰千里足,送儿还故乡。

爷娘闻女来,出郭相扶将;阿姊闻妹来,当户理红妆;小弟闻姊来,磨刀霍霍向猪羊。开我东阁门,坐我西阁床。脱我战时袍,著我旧时裳。当窗理云鬓,对镜帖花黄。出门看火伴,火伴皆惊忙:同行十二年,不知木兰是女郎。

雄兔脚扑朔,雌兔眼迷离;双兔傍地走,安能辨我是雄雌?

兔子,木兰骑马的时候有提到,说是见到两只兔子,不知道公母,但是自己猜是一公一母。

有关西方人理解的中国故事

核心剧情

迎击敌军的是皇帝陛下的卫队。这在西方人看来很正常。因为西方(欧洲)的国家都很小。有一个城堡,就敢号称自己是个国王。所以国家最精锐的部队必然是国王的卫队。打仗派出的也是国王的卫队。

但是中国不同。中国皇帝的疆域可比欧洲的国王大多了。打仗也不可能是排出皇帝陛下的卫队。因为皇帝亲军的存在的目的就是为了拱卫京师。而外族打仗,那是边军的事。因此电影中调虎离山,然后袭击都城的事情,在欧洲可能成立。在中国是不可能成立的。

这是电影情节最大的硬伤。剧情不成立。

仙娘

巩俐饰演的仙娘是一名巫女。巫女(女巫)是西方世界常见的角色。并且有一段时间,教廷还追杀她们,认为她们是邪恶的。现代西方社会,女巫被认为是不存在的。并且存在一个词,叫“猎巫”,含义是借助不存在的罪名迫害某人。

中国文化中,即便有巫女(神婆),也不会被迫害,反而会受到尊敬。所以,巫女因为遭到迫害而加入敌方这件事。剧情也是不成立。

从电影的结构来说,木兰是明线。仙娘是暗线。二者有着类似的成长经历,身怀天赋,但是因为是女性,才能不被世人认可。仙娘选择了反抗,加入了外族军队。而木兰选择了相信自己的同伴,最终才能得到承认。

木兰

影片的前半段,其实拍得还是中规中矩的。电影中的木兰更像是古龙笔下的人物,一开场就有极高的实力。而没有修炼过程。比如在军营中,其余的人都是受训并提高实力。而木兰,从一开始就是想办法掩盖自己的实力。

故事的转折发生在木兰与仙娘的相遇。仙娘看出了她是女的,并不停地问你是谁。木兰却说自己是花军,是效忠皇帝陛下的骑士。结果……花军就被打死了。然后仙娘跑去了别的战场,而木兰因为先祖(凤凰)的庇佑,又重生了过来。之后,她决定不在隐藏自己的身份,以女人的身份进行战斗。

从这时起,木兰的主角光环就来了。不仅获得胜利,并且反派也纷纷降智。甚至在被逐出军队后,又回到军队时,将军不仅没有杀她。还在军队中采用了民主制,因为大家都支持她,就把回都城的任务交给她,并且突击骑兵队由她来指挥。要知道,将军也是一起回防的。

关于功夫和场面

平心而论,几场打斗还是精彩的。只和李连杰和甄子丹都无关,这难免让观众失望。

最终得分

6分。剧情硬伤严重。给外国人看没什么,但是给中国人看漏洞就过大了。服化道方面,由于我本身对于南北朝时人们穿成什么样都没什么研究。所以这个就不说了。来张刘亦菲的"华为"造型作为结尾。

p2619664675.jpg