老话题 MacOS 浏览器有什么推荐吗
现在是比较推荐 Chrome 还是 Firefox 呢?亦或是有什么更好的选择?
(另外我在本地配置了 SmartDNS 照理说有缓存的情况下 Safari 不应该加载这么慢,和 Chrome 一样瞬间加载才是合理的,不知道自建 DNS 的朋友有没有一样的情况)
各位吴彦祖们,我 mac 目前版本是 15.3.2 (但估计问题出现是 15.3 ),覆盖安装 app 时就会提示无权限(具体报错信息如下),并且所有软件都是如此。打开对应的 app 的共享与权限里发现没有管理员,这个怎么办呀?
无法完成此操作,因为必须跳过某些项目。在每个项目下,选取“文件”>“显示简介”,确保取消选择“锁定”,然后检查“共享与权限”部分。在确定项目已解锁且未指定为“只读”或“无法访问”后,请重试。
Apple has just released an update to XProtect for all supported versions of macOS, bringing it to version 5295. As usual, Apple doesn’t release information about what security issues this update might add or change.
This version adds a single new rule for MACOS.SOMA.BYTE.SEQUENCE.B.
You can check whether this update has been installed by opening System Information via About This Mac, and selecting the Installations item under Software.
A full listing of security data file versions is given by SilentKnight, LockRattler and SystHist for El Capitan to Sequoia available from their product page. If your Mac hasn’t yet installed this update, you can force it using SilentKnight, LockRattler, or at the command line.
If you want to install this as a named update in SilentKnight, its label is XProtectPlistConfigData_10_15-5295
.
This update has also been released for Sequoia via iCloud. If you want to check that manually, use the Terminal commandsudo xprotect check
then enter your admin password. If that returns version 5295 but your Mac still reports an older version is installed, you can force the update usingsudo xprotect update
I have updated the reference pages here which are accessed directly from LockRattler 4.2 and later using its Check blog button.
尝试过 WindTerm 但是其并不原生支持 AppleSilicon 的缘故?无法保存密码,重新打开之后 oneky 就全部丢了
Terminus 好像不支持 X11 ?并且是付费的
最近在研究 8 音盒,自己用纸带打孔(30 音)的那种。然后发现了FairyMusicBox这个软件,做的挺好,可以自己打谱试听,绘制出纸带的打孔孔位,软件精美的,让我放弃了用 python 手搓轮子的想法。
但是,它只支持 Windows 系统。万恶之源!
一番折腾下来,真是累坏了!
虚拟机方案。
下载 Windows 镜像、VirtualBox 虚拟机、UTM 虚拟机,这些都要特别关注是不是 Apple Silicon 芯片。为了下载 Windows 镜像,还要下载 CrystalFetch ,然后配置虚拟机,死活跑不起来,各种尝试,最后发现竟然是没有“在 boot 时按任意键”导致进了 shell ,而不是加载 EFI 引导盘,WTF !这中间下载了至少 3,4 个版本的 windows 镜像,包括 windows preview 计划。
等虚拟机跑通之后,程序也终于跑起来了,然而,怎么会这么卡?不是使用的 Apple 的 Hypervise 虚拟化技术吗?怎么会这么卡?是软件的问题吗?
虚拟接口层方案
还有另一种方案,用 macOS 的接口模拟 Windows 的接口。开源的有 Wine 。用 homebrew 安装,提示 Rosetta 2 没有安装,可是我记得没动过 Rosetta 啊,还提示 wine 的镜像下载失败。暂时放弃,后来虚拟机的路子实在走不通了,又尝试安装了一下 Rosetta 2 ,竟然安装上了,那么我机器上的 Rosetta 是什么?不解。
配置 Wine 的过程一路坎坷,等终于通过 wine FairyMusicBoxInstaller.exe 把软件的安装包跑起来,中文乱码、提示框报错,于是又安装 wine 的补丁,安装系统字体包,安装 vcruntime 运行时,终于,软件安装好了!结果 FairyMusicBox 一跑起来就崩溃了,0x00 地址访问错误,连初始化界面都没进!又开始查日志,搜 github ,问 AI ,最后定位到是 DirectX 的问题,原来 FairyMusicBox 使用 DX11 渲染那一个个漂亮的音符,但 Wine 不支持,超过能力范围了,Apple 的图形接口又那么独特。所以又开始找 Vulkan 模拟 DX 的方案,尝试 DXVK ,MoltenVK 等等,试来试去,总是不行。log 显示模拟 DX11 倒是成功了,图形设备也创建成功,但下一句 log 又立马又是访问 0x00 崩溃,这到底是模拟成功了还是没成功呢?!
放弃了
算了,还是老实付费 CrossOver 这个 Wine 的商业版软件吧,支持一下 Wine !折腾这么一番,图什么呢!!
其实在最开始阶段,用 CrossOver 很顺利就跑通了,然后也成功打了一只曲子的纸带。后面之所以再去折腾虚拟机、Wine 这些,主要也是希望用开源免费的,毕竟 CrossOver 就是 Wine 的商业化版本啊,难不成守着开源的赶着去付钱?结果给我来个这样的暴击!
看到 macOS 上跑起来 Windows 的软件,感觉还是挺不错的,算是一个欣慰。有没有同样踩过坑的,这真的太坑了!!
I hope that you enjoyed Saturday’s Mac Riddles, episode 303. Here are my solutions to them.
Harvard or Yale (a university or uni) cipher (a code) brought emoji and Ugaritic (two of its supported character sets).
US standard (initially ASA X3.4-1963, later an ANSI standard) for 128 Roman characters (originally consisted of only 128 characters including a basic Roman alphabet) now over 60 (first published in 1963, it turns 62 years old this year).
Two plus 128 more (it consists of the 128 characters in ASCII, plus 128 more including punctuation, symbols and diacritics) came in 1989 (first appeared in System 6.0.4 in that year), gained a euro in 1998 (the only change made since introduction), and still supported (it is, although now encoded in UTF-8).
They are text encodings that have been used in Mac OS.
I look forward to your putting alternative cases.
Here are this weekend’s Mac riddles to entertain you through family time, shopping and recreation.
1: Harvard or Yale cipher brought emoji and Ugaritic.
2: US standard for 128 Roman characters now over 60.
3: Two plus 128 more came in 1989, gained a euro in 1998, and still supported.
To help you cross-check your solutions, or confuse you further, there’s a common factor between them.
I’ll post my solutions first thing on Monday morning.
Please don’t post your solutions as comments here: it spoils it for others.
For many years, most types of disk image were inefficient in their use of storage space, as they occupied their full size on disk. Until recently, when you created a 5 GB read-write UDIF disk image, one of the most popular, it invariably took up 5 GB in storage, even when empty. This also applied to the raw disk images used by Virtual Machines: give a VM 100 GB, and that’s just what it took on disk. With the introduction of sparse files in APFS, this has changed, and many disk images now only take the space they need. I’m not sure exactly when this change occurred, as Apple still doesn’t appear to have documented it, but it seems to have changed with macOS Monterey.
This is easiest to see with a plain read-write disk image, created using DropDMG or Disk Utility.
Here’s one I made earlier, a whole 350 GB in size. When it’s created, it’s automatically attached and mounted at full size. For the sake of example, I then copied a large IPSW to it, so it wasn’t entirely empty.
Unmount it and Get Info on the disk image and you’ll see it does still take up a full 350 GB on disk. Mount it again, though, and APFS works its magic. You can see this in LogUI, or the custom log extract provided by Mints.
When unmounted again it has shrunk down to take little more than the size of the IPSW file in it, at just over 17 GB. That’s less than 5% of its nominal size, without using any compression.
It’s worth looking through entries in the log made by APFS for the mount process. First, APFS checks whether the data store for the disk image is already sparse:01.470 container_backingstore_is_sparse:1652: Image url file:///Volumes/LaCie2tb/350gbudif.dmg Image path /Volumes/LaCie2tb/350gbudif.dmg
01.470 container_backingstore_is_sparse:1659: Image /Volumes/LaCie2tb/350gbudif.dmg is a flat file, do not consider as sparse
It then sets it to sparse, ready for sparsification:01.475 handle_apfs_set_backingstore:6207: disk9s1 Set backing store as sparse
01.475 handle_apfs_set_backingstore:6240: disk9 Backing storage is a raw file
Space Manager performs an initial scan for free blocks without any Trimming:01.479 spaceman_scan_free_blocks:4136: disk9 scan took 0.004272 s (no trims)
01.479 spaceman_fxc_print_stats:477: disk9 dev 0 smfree 81258479/85398014 table 4/452 blocks 81258479 32766:20314619:79974226 100.00% range 35869:85362145 99.95% scans 1
Space Manager then scans and Trims free storage blocks, taking just over 0.7 second to complete:02.196 spaceman_scan_free_blocks:4106: disk9 scan took 0.717433 s, trims took 0.715705 s
02.196 spaceman_scan_free_blocks:4110: disk9 81258479 blocks free in 25 extents, avg 3250339.16
02.196 spaceman_scan_free_blocks:4119: disk9 81258479 blocks trimmed in 25 extents (28628 us/trim, 34 trims/s)
02.196 spaceman_scan_free_blocks:4122: disk9 trim distribution 1:0 2+:0 4+:0 16+:0 64+:0 256+:25
What happens with an Apple silicon VM is a bit more complicated, and harder to observe. This time the virtualisation app should create the disk image inside the VM bundle as a sparse file to begin with, then copy into that what’s needed for the VM, so skipping the first mount stage and Trimming during the second mount.
The result is the same, though, with a 350 GB VM taking just 22 GB on disk. Inspect that disk image using my free utility Precize, and you’ll see that economy confirmed, and the Sparse File flag set.
For plain read-write disk images and those inside VMs to be sparse files:
Apple has just released an update to XProtect for all supported versions of macOS, bringing it to version 5293. As usual, Apple doesn’t release information about what security issues this update might add or change.
This version adds a single new rule for MACOS.SOMA.J.
You can check whether this update has been installed by opening System Information via About This Mac, and selecting the Installations item under Software.
A full listing of security data file versions is given by SilentKnight, LockRattler and SystHist for El Capitan to Sequoia available from their product page. If your Mac hasn’t yet installed this update, you can force it using SilentKnight, LockRattler, or at the command line.
If you want to install this as a named update in SilentKnight, its label is XProtectPlistConfigData_10_15-5293
.
This update has also been released for Sequoia via iCloud. If you want to check that manually, use the Terminal commandsudo xprotect check
then enter your admin password. If that returns version 5293 but your Mac still reports an older version is installed, you can force the update usingsudo xprotect update
I have updated the reference pages here which are accessed directly from LockRattler 4.2 and later using its Check blog button.
I hope that you enjoyed Saturday’s Mac Riddles, episode 302. Here are my solutions to them.
Shortened characters (text, shortened) into the most common extension (it is), formerly ASCII (it used to be).
Medical practitioner (a doc) at the end of word files (the extension for Word native format) until gaining a cross in 2002 (progressively replaced by the newer docx from 2002 onwards).
At the end (a filename extension) of real estate (property) inventory (list), most commonly for Info (Info.plist in bundles) and preferences (also usually property lists).
They are common filename extensions.
I look forward to your putting alternative cases.
2999,入手 16+256G 内存的 macmini4 ,如何通过部署 50 个服务实现最大价值化
刚入手了一台 2999 的,看大家都在推荐,所以买回来了,但是还没想好咋用。大家有好的推荐码?
AI 的回复我也看过了,但是还是没看出所以然来。
以下是可在 Mac mini ( M4 芯片/16GB 内存) 上部署的 50 个服务 及其极简评价,按类别分类整理:
服务名称 | 评价 | 内存占用 | 适用场景 |
---|---|---|---|
VS Code Server | 远程 Web IDE ,支持多人协作 | 中等 | 团队开发 |
Docker | 轻量容器化,快速部署 | 低 | 微服务/测试环境 |
Minikube | 本地 K8s 集群,开发测试用 | 高 | Kubernetes 学习 |
GitLab Runner | 持续集成/交付代理 | 中等 | CI/CD 流水线 |
Jenkins | 自动化构建工具,插件丰富 | 高 | 复杂构建任务 |
PostgreSQL | 开源关系型数据库,扩展性强 | 中等 | 数据存储 |
Redis | 内存数据库,超低延迟 | 低 | 缓存/消息队列 |
MySQL | 经典关系型数据库 | 中等 | 传统应用 |
MongoDB | 文档数据库,JSON 友好 | 中等 | NoSQL 需求 |
Prometheus | 监控告警系统,时序数据 | 低 | 服务监控 |
Grafana | 可视化仪表板,对接多数据源 | 低 | 监控展示 |
Portainer | Docker 图形化管理工具 | 低 | 容器运维 |
Nginx | 高性能 Web 服务器/反向代理 | 极低 | 静态站点/API 网关 |
Apache | 传统 Web 服务器,模块化 | 低 | 兼容旧项目 |
Node.js | JavaScript 运行时,事件驱动 | 低 | 全栈开发 |
Python Flask | 轻量级 Web 框架 | 低 | 快速 API 开发 |
Elasticsearch | 全文搜索引擎,分布式 | 高 | 日志分析/搜索服务 |
RabbitMQ | 消息队列,AMQP 协议支持 | 中等 | 异步任务处理 |
Hugo | 静态网站生成器,极速构建 | 极低 | 博客/文档站点 |
服务名称 | 评价 | 内存占用 | 适用场景 |
---|---|---|---|
Jellyfin | 开源媒体服务器,硬件加速 | 中等 | 家庭影库 |
Plex | 商业媒体服务器,客户端丰富 | 中等 | 流媒体共享 |
Homebridge | 非 HomeKit 设备接入苹果生态 | 低 | 智能家居中枢 |
Home Assistant | 全能智能家居平台,自动化强 | 中等 | 复杂智能场景 |
Pi-hole | 网络级广告拦截,DNS 过滤 | 极低 | 全家去广告 |
AdGuard Home | 替代 Pi-hole ,支持 DoH/DoT | 低 | 隐私保护 |
Calibre | 电子书管理服务器 | 低 | 个人数字图书馆 |
Audiobookshelf | 有声书管理,支持多端同步 | 低 | 有声书爱好者 |
Photoprism | 私有云相册,AI 分类 | 中等 | 照片备份与管理 |
Nextcloud | 自建云盘,替代 Google Drive | 高 | 文件同步/协作 |
服务名称 | 评价 | 内存占用 | 适用场景 |
---|---|---|---|
OpenWRT | 旁路由功能,科学上网/广告过滤 | 低 | 网络优化 |
Tailscale | 零配置内网穿透,WireGuard 协议 | 极低 | 远程访问 |
Zerotier | 虚拟局域网,跨网络组网 | 极低 | 异地设备互联 |
Nginx Proxy | 反向代理管理器,自动 SSL | 低 | 多服务域名暴露 |
Traefik | 动态反向代理,支持容器 | 低 | 微服务网关 |
Fail2Ban | 防暴力破解,自动封禁 IP | 极低 | 服务器安全 |
WireGuard | 轻量级 VPN ,高性能 | 极低 | 加密通信 |
Squid | HTTP 代理缓存,加速访问 | 中等 | 内网加速 |
Snort | 网络入侵检测系统 | 高 | 安全监控 |
Gitea | 轻量 Git 服务,替代 GitLab | 低 | 私有代码托管 |
服务名称 | 评价 | 内存占用 | 适用场景 |
---|---|---|---|
Homer | 导航首页,聚合服务链接 | 极低 | 服务入口统一 |
Uptime Kuma | 服务可用性监控,通知告警 | 低 | 运维监控 |
Wiki.js | 知识库系统,Markdown 支持 | 中等 | 团队文档 |
BookStack | 结构化文档管理 | 中等 | 技术手册 |
Bitwarden | 密码管理器,自托管版 | 低 | 密码安全 |
Vaultwarden | Bitwarden 轻量替代 | 极低 | 低资源密码管理 |
ntfy | 推送通知服务,跨平台 | 极低 | 消息提醒 |
Gotify | 简易消息推送服务器 | 极低 | 自定义通知 |
Radarr | 电影自动下载管理 | 中等 | PT 爱好者 |
Sonarr | 剧集自动下载管理 | 中等 | 追剧自动化 |
服务名称 | 评价 | 内存占用 | 适用场景 |
---|---|---|---|
LLM Local | 本地运行 Llama 3 等大模型 | 极高 | AI 实验 |
Stable Diffusion | 本地 AI 绘图,依赖 GPU 加速 | 高 | 图像生成 |
Ollama | 简化版本地 LLM 管理工具 | 中等 | 轻量 AI 开发 |
IPFS | 分布式存储节点 | 中等 | Web3 开发 |
Ethereum | 以太坊轻节点 | 高 | 区块链开发 |
Folding@Home | 分布式计算贡献算力 | 极高 | 科研公益 |
Kasm | 容器化桌面环境,远程隔离 | 高 | 安全沙箱 |
CyberChef | 数据编解码 Web 工具 | 低 | 安全分析 |
Grafana Loki | 日志聚合系统,轻量替代 ELK | 中等 | 集中式日志 |
Meilisearch | 极速全文搜索引擎 | 低 | 替代 Elasticsearch |
docker run --memory 2g
)通过合理分配,16GB 内存可同时承载约 10-15 个中低负载服务。
Here are this weekend’s Mac riddles to entertain you through family time, shopping and recreation.
1: Shortened characters into the most common extension, formerly ASCII.
2: Medical practitioner at the end of word files until gaining a cross in 2002.
3: At the end of real estate inventory, most commonly for Info and preferences.
To help you cross-check your solutions, or confuse you further, there’s a common factor between them.
I’ll post my solutions first thing on Monday morning.
Please don’t post your solutions as comments here: it spoils it for others.
Apple has just released an update to XProtect for all supported versions of macOS, bringing it to version 5292. As usual, Apple doesn’t release information about what security issues this update might add or change.
This version removes the macos_toydrop_b rule for MACOS.ADLOAD, and amends the rules for MACOS.ADLOAD.I, MACOS.BUNDLORE.MDPLST and MACOS.ADLOAD.IN.
You can check whether this update has been installed by opening System Information via About This Mac, and selecting the Installations item under Software.
A full listing of security data file versions is given by SilentKnight, LockRattler and SystHist for El Capitan to Sequoia available from their product page. If your Mac hasn’t yet installed this update, you can force it using SilentKnight, LockRattler, or at the command line.
If you want to install this as a named update in SilentKnight, its label is XProtectPlistConfigData_10_15-5292
.
This update has now been released for Sequoia via iCloud. If you want to check that manually, use the Terminal commandsudo xprotect check
then enter your admin password. If that returns version 5292 but your Mac still reports an older version is installed, you can force the update usingsudo xprotect update
I have updated the reference pages here which are accessed directly from LockRattler 4.2 and later using its Check blog button.
I hope that you enjoyed Saturday’s Mac Riddles, episode 301. Here are my solutions to them.
Roll pasted on the interior (what wallpaper is) background (it sets the Desktop, and replaced Desktop & Screen Saver).
Secure (to lock) partition (a screen) for the idle display (it sets what is shown on the display when it’s idle).
Pastime (a game) bull’s-eye (a centre) for the player (it enables access to game features).
They were all introduced in macOS Ventura’s System Settings, but weren’t in System Preferences.
I look forward to your putting alternative cases.
Most modern Macs start up from their internal SSD, and have a single bootable system installed. Although its structure has changed considerably over recent years, and differs between Intel and Apple silicon Macs, they are generally reliable, and knowledge of their structure and function is seldom required.
Those who need to start their Mac up from two or more versions of macOS, or who do so from an external disk, may be able to get by without deeper understanding, but the moment there’s a problem can become confused, and end up having to install macOS from scratch.
Both types of Mac are designed to support Secure Boot, but because of the reliance of Intel Macs on UEFI firmware, they can only boot securely from their internal SSD. Enabling an Intel T2 Mac to start up from an external disk thus requires its boot security to be reduced by changing that in Startup Security Utility, in Recovery mode. Booting from an external system is then straightforward, and doesn’t require additional security measures as used in Apple silicon.
Apple silicon Macs have been designed from the outset to support Secure Boot when starting up from both internal and external disks, and don’t require any reduction in their boot security to be able to start up from multiple systems on external SSDs. It’s a common misunderstanding that trying to change Boot Security in Startup Security Utility can help solve Apple silicon boot problems, but if anything it only complicates them. Almost the only good reason for reducing boot security of an Apple silicon bootable system is when third-party kernel extensions are required. Otherwise don’t tamper with Startup Security Utility, as it will only confuse, as we’ll see later.
For an Apple silicon Mac to boot from a macOS system, that must have a LocalPolicy created and saved to the internal SSD. LocalPolicy is normally created during macOS installation, or when intending to start up from a suitably installed system. Problems with LocalPolicy have been common when using external disks, and are covered in these articles:
Another significant difference between Intel and Apple silicon Macs is the architecture of their internal SSDs: Apple silicon has two additional partitions (APFS containers), and lacks the traditional EFI partition. However, there are no such differences in the structure of their bootable external disks, and its relevance here is limited, and mainly affects Big Sur as I explain below.
Bootable disks in versions of macOS between High Sierra and Mojave (above) are based on their single boot volume, supplemented by hidden Preboot, Recovery and VM volumes. macOS 10.15 Catalina (below) divided that boot volume into a Boot Volume Group, consisting of paired System and Data volumes, in addition to the same three hidden volumes.
Basic support for volume roles was introduced in the first release version of APFS in macOS 10.13, and was extended to cover further roles in 10.15. Thus versions of APFS prior to 1412.x.x don’t understand volume roles used by subsequent systems. From Catalina onwards you can use the commanddiskutil apfs listVolumeGroups
to see paired System and Data volumes, for example+-- Container disk5 5BA1AAC8-3AD4-4594-AF01-7C0AA75CABAD
| |
| +-> Volume Group 68627CBB-D774-444E-97C6-F9511B5030F3
| =================================================
| APFS Volume Disk (Role): disk5s1 (Data)
| Name: Macintosh HD - Data
| Volume UUID: 68627CBB-D774-444E-97C6-F9511B5030F3
| Capacity Consumed: 580769214464 B (580.8 GB)
| -------------------------------------------------
| APFS Volume Disk (Role): disk5s5 (System)
| Name: Macintosh HD
| Volume UUID: 8B9FF440-75C8-4F7F-B09E-9222D44A2276
| Capacity Consumed: 11239186432 B (11.2 GB)
Note that each volume group has its own UUID, which is normally the same as that of the Data volume in the pair. Identification of volumes, containers and other structures in APFS is dependent on these UUIDs, which are an essential part of the GUID Partition Table scheme used to partition disks.
Catalina’s System volume is mounted read-only, but macOS is booted from that volume rather than the Signed System Volume snapshot introduced in Big Sur.
Although the structure of Big Sur internal SSDs in Apple silicon Macs has two additional partitions (APFS containers), Apple_APFS_ISC containing three volumes, and Apple_APFS_Recovery containing two volumes, bootable external disks have the same structure as the internal SSD in Intel Macs.
One important functional difference, which remains relevant to Big Sur boot disks, is that Apple silicon Macs don’t use the paired Recovery volume as their primary Recovery system: booting an Apple silicon Mac running Big Sur into Recovery should instead use the Recovery system installed in their internal SSD, in the Apple_APFS_Recovery partition. In subsequent versions of macOS, that’s used instead for secondary or Fallback Recovery. Thus Big Sur can be a problem when it comes to Recovery, and for this reason is best avoided on Apple silicon Macs. If it’s essential to install a copy of Big Sur, then be prepared for problems with Recovery mode.
macOS 11 also established the architecture for dual-boot partitions, with two or more Boot Volume Groups.
Although the Boot Volume Group has only ever referred to paired System and Data volumes, within each partition/container the group also requires three or four additional volumes, for Preboot, Recovery, VM and (apparently in Big Sur only) Update. How those work with multiple Boot Volume Groups is explained below. Once way to avoid the inevitable complexities is to install each Boot Volume Group into a separate partition/container, which provides each with its own suite of Preboot, Recovery and VM volumes.
As the Signed System Volume (SSV) was introduced in macOS 11, versions of APFS prior to 1677.x.x shouldn’t be expected to understand SSVs.
The next significant architectural changes in Apple silicon Macs were the introduction of paired Recovery volumes in macOS 12 Monterey, and of cryptexes in macOS 13 Ventura.
In macOS 11 and 12, Safari, its supporting components, and some other parts of macOS are installed to the Data volume for ease of maintenance. Apple replaced that with separate secure disk images termed cryptexes, loaded from the Preboot volume during the boot process and grafted into the root file system. As a single Preboot volume can be shared by more than one Boot Volume Group, bundled cryptexes must be provided to the correct group, and I suspect that’s accomplished by associating them with their Volume Group UUID. If that becomes confused in any way, cryptexes could be incorrectly associated or missing altogether, something that’s almost certainly fatal to the boot process.
Above is the current layout of a partition/container containing a single bootable system for a Mac running Sequoia. Device names given are illustrative, although their numbering is typical of that seen for external bootable volumes. In this instance, the base name for the Boot Volume Group is External, and the External System volume is unmounted as usual.
Below is a typical partition/container containing two bootable systems named ExternalA and ExternalB. This has two Boot Volume Groups, each consisting of a System volume with its SSV, and a Data volume, to which are added their three common volumes, Preboot, Recovery and VM.
The most reliable tools for creating and working with Boot Volume Groups and other system components are those in macOS installer apps, and even they can have their moments and bugs. It’s usually possible to ‘clone’ groups using the asr
command tool, a feature that’s offered in some third-party utilities including Carbon Copy Cloner and SuperDuper. However, Apple has made it clear that given a choice between supporting asr
and addressing boot security, it gives the latter absolute priority. asr
has suffered some serious bugs since the SSV was introduced in Big Sur, and shouldn’t be relied on.
asr
is careful to ensure that, when cloning Boot Volume Groups, UUIDs are changed so that it doesn’t end up with volumes or groups with the same UUID. That may not be the case when using some other tools such as dd
for duplication. If you prefer a simple and stress-free life, it’s better to put your trust in a macOS installer rather than try crafting your own Boot Volume Groups.
Apple’s own tools such as Disk Utility now try to steer the user away from making mistakes, such as deleting just one of a Boot Volume Group, leaving the other orphaned with its firmlinks broken.
Firmware is another source of confusion. That installed in the Mac, using its internal storage, should always reflect the firmware that has been included in the most recent version of macOS installed or updated on that Mac, whether that was installed to the internal SSD or to an external disk. The only exception to this is when installing or updating macOS in a Virtual Machine, which can’t affect the host’s firmware.
What may appear more puzzling are the versions reported in System Information: that given as System Firmware should be the iBoot version for the main Mac, and the most recent. The OS Loader, though, varies with the Boot Volume Group, and in older macOS is likely to be earlier than the iBoot version of the main Mac.
Recovery system versions are even more complex. When everything works as it should, the version installed in any paired Recovery volume should be the newest of the Boot Volume Groups that it’s paired with, in the same partition/container. If a Mac running 15.3 from its internal SSD has a bootable external disk with a single container with two Boot Volume Groups for 13.7 and 14.7, then the Recovery system for the internal SSD should be 15.3, while that shared by the two systems on the external disk should be 14.7. It’s likely that Fallback Recovery on the internal SSD will be from an earlier version of macOS 15, but that’s less predictable, and there’s no separate Fallback Recovery in external systems.
Switching between systems and their Boot Volume Groups is normally performed using Startup Disk in General settings, or its equivalent in System Preferences. Those record the chosen Boot Volume Group in NVRAM, from where it’s used during the next boot.
That setting is used to determine which Recovery system is used if the next boot is performed with the Power button pressed to enter Recovery mode. That in turn determines what can be performed in Recovery. This is most critical for determining how Startup Security Utility works, as that can only change boot security settings for the chosen Boot Volume Group saved in NVRAM.
For example, in the dual-boot container shown above, selecting ExternalB as the Startup Disk, shutting down, then starting up into Recovery mode should enable Startup Security Utility to control boot security for ExternalB but not ExternalA, nor the system installed on the internal SSD. This can be used to discover which Recovery system is running: open Startup Security Utility and the only boot system that can be changed there is the current default boot system.
Although APFS should be backward compatible, making it relatively safe to make changes to an older version of APFS from a newer system, forward compatibility is more limited. Using older versions of Disk Utility or tools like fsck
on newer versions of APFS risks errors, failure and at worst damage. The Appendix at the end of this article summarises version numbering in APFS and major changes to beware of. Although not easy to discover the version of APFS used to create or modify any given volume, one way is to usefsck_apfs -n -S [device]
giving the volume’s device name. The report should then be prefaced by a statement such as
The volume [volume name] was formatted by diskmanagementd (1412.141.1) and last modified by apfs_kext (945.250.134).
telling you that volume was created by macOS 10.15, and was last changed by macOS 10.14.
The first and fundamental step in trying to diagnose the cause of problems with multiple Boot Volume Groups or bootable external disks is to examine their container and volume structure using two diskutil
commands:diskutil apfs list
lists all APFS volumes by container and gives key information about each, including role and UUID, anddiskutil apfs listVolumeGroups
lists all recognised Boot Volume Groups, which you can tally against the first. Pipe these to text files so you can study and refer back to them.
Those should enable you to verify that the structure is as intended, and to establish the relationships between systems and paired Recovery volumes. From there you should be able to focus on the Boot Volume Group that’s misbehaving, ensuring that its Data volume has been backed up. If necessary, that can be used as a migration source if that group needs to be deleted and reinstalled.
fsck_apfs -n -S [device]
to discover the APFS version.diskutil apfs list
and diskutil apfs listVolumeGroups
to discover volume structure.APFS major version numbers change with major version of macOS:
One of the magic tricks that characterised the Mac was its association between documents and their apps. No longer did a user have to type in both the name of the app and the document they wanted it to edit. All they needed to do was double-click the document, and it magically opened in the right app.
In Classic Mac OS, that was accomplished by hidden Desktop databases and type and creator codes. For example, a text document might have the type TEXT
and a creator code of ttxt
. When you double-clicked on that, the Finder looked up which app had the creator code ttxt
, which turned out to be the SimpleText editor, and opened that document using that app.
Although those ancient type and creator codes still live on today in modern macOS, they no longer fulfil that role. Instead, each file has what used to be a Uniform Type Indicator (UTI), now wrapped into a UTType, such as public.plain-text
, normally determined by the extension to its name, .txt
or .text
. When you double-click on a file, LaunchServices looks up that UTType in its registry, discovers which app is set as the default to open documents of that type, then launches that app with an AppleEvent to open the document you picked.
Recognising that we often want to open a document using a different app rather than the default, the Finder’s contextual menu offers a list of suitable apps in its Open With command. That list is built and maintained by LaunchServices, and has changed in recent versions of macOS. Whereas those lists used to consist of apps installed in the traditional Application folders, LaunchServices now scours every accessible volume and folder using Spotlight’s indexes to build the biggest lists possible. If you happen to have an old copy of an app tucked away in a dusty corner, LaunchServices will find it and proudly display it alongside those in everyday use, like a game dog triumphantly presenting not one dead pheasant but every one from miles around.
For those with lean systems, this gives them the flexibility to open a large text document using BBEdit rather than TextEdit, or to select which image editor to use for a JPEG. But for those of us with lots of apps lurking in storage, the result is absurd and almost unusable. It’s bad enough working through the 33 apps that LaunchServices lists as PNG editors, but being offered 70 text editors is beyond a joke.
Unfortunately, there’s no lasting way to block unwanted apps from being added to the list LaunchServices builds for this Open With feature. You can gain temporary relief by excluding them from Spotlight search, but should you ever open the folder they’re in using the Finder, those are all added back. This also afflicts apps in folders shared with a Virtual Machine, where the list includes App Store apps that can’t even be run from within that VM.
There are, of course, alternatives. I could drag and drop the document from its Finder window towards the top of my 27-inch display to the app’s icon in the Dock at the foot, which is marginally less awkward than negotiating my way through that list of 70 apps.
But there are better solutions: why not empower me to determine which of those 70 apps should be offered in the Open With list? This is such a radical idea that it used to be possible with the lsregister
command that has become progressively impotent, as LaunchServices has cast its net further in quest of more apps to flood me with. Or maybe use a little machine learning to include only those text editors I use most frequently to open documents? Apple could even brand that LaunchServices Intelligence, although that’s a little overstated.
I can’t help but think of what those magicians from forty years ago would have done, but I’m certain they wouldn’t have offered me that list of 70 apps to choose from.
在 macOS 中,许多应用在启动时会频繁弹出“XX.app 想访问其他App的数据”提示,非常影响使用体验。
Here are this weekend’s Mac riddles to entertain you through family time, shopping and recreation.
1: Roll pasted on the interior background.
2: Secure partition for the idle display.
3: Pastime bull’s-eye for the player.
To help you cross-check your solutions, or confuse you further, there’s a common factor between them.
I’ll post my solutions first thing on Monday morning.
Please don’t post your solutions as comments here: it spoils it for others.
Apple has just released an update to XProtect for all supported versions of macOS, bringing it to version 5291. As usual, Apple doesn’t release information about what security issues this update might add or change.
This version amends the Yara rule for MACOS.PIRRIT.OBF.DROPPER, but doesn’t add any new rules.
You can check whether this update has been installed by opening System Information via About This Mac, and selecting the Installations item under Software.
A full listing of security data file versions is given by SilentKnight, LockRattler and SystHist for El Capitan to Sequoia available from their product page. If your Mac hasn’t yet installed this update, you can force it using SilentKnight, LockRattler, or at the command line.
If you want to install this as a named update in SilentKnight, its label is XProtectPlistConfigData_10_15-5291
.
This update has also been released for Sequoia via iCloud. If you want to check that manually, use the Terminal commandsudo xprotect check
then enter your admin password. If that returns version 5291 but your Mac still reports an older version is installed, you can force the update usingsudo xprotect update
I have updated the reference pages here which are accessed directly from LockRattler 4.2 and later using its Check blog button.
I hope that you enjoyed Saturday’s Mac Riddles, episode 300. Here are my solutions to them.
The first chips (Apple silicon SoCs) with six-packs (the M3 family is the first to support six-core clusters) celebrated Halloween (they were announced at Apple’s ‘Scary Fast’ event on 30 October 2023).
First with FireWire (it was the first Mac to come standard with FireWire ports) and almost see-through in its two-tone case (it has a distinctive translucent blue and white case).
It brought Exposé, Fast User Switching and Xcode (all three were new features in 10.3, released on 24 October 2003).
The number 3; in binary 11, which looks like the number 2 in Roman numerals.
I look forward to your putting alternative cases.
Sometimes Macs behave in ways that you don’t forget. It was nearly six years ago, in 2019 when my iMac Pro was still running macOS Mojave, that it took over half an hour to start up in Safe mode. As became obvious, that was because it checked the integrity of every snapshot, including its long series of Time Machine backups. That behaviour stopped with the release of Catalina later that year, and revisiting the experience last week was interesting, when I examined what Safe mode does now in Sequoia.
fsck
Checking disk integrity has long been a feature claimed of Safe mode, although Apple has only recently clarified that its checks are “similar to the more comprehensive check performed by the First Aid feature of Disk Utility,” unlike those in the days of Mojave.
Because these are run when starting up into Safe mode, macOS can’t report them directly to the user. There are only two places for their results to be recorded: in the fsck_apfs
log at /var/log/fsck_apfs.log (and its error log at /var/log/fsck_apfs_error.log), and in the Unified log, neither of which are likely to be visited by users. It doesn’t seem possible that checks could be run before entries are made in the Unified log, and if they were their results would be inaccessible, and of no value to the user.
If you do look there, you might be surprised to discover that the checks run by fsck_apfs
are ‘quick checks’, described as a “check whether the device is `clean’. If device is an APFS volume, fsck_apfs
will quickly check the APFS container and the specified APFS volume. If device is an APFS container, fsck_apfs
will quickly check the APFS container and all the APFS volumes in it. By default, no repairs are attempted during a quick check.” Thankfully they also no longer include Time Machine snapshots or backups.
For users, the most important of volumes to be checked is the Data volume in the current boot volume group. Yet careful examination of both log records reveals that such checks fail, returning error 65, because the device is mounted with write access. Although they could be performed using fsck_apfs
‘s live verification, no attempt is made to do that. From the active boot volume group, only the Recovery and Update volumes are checked, together with all accessible external volumes.
fsck
Before you think that’s better than making no checks at all, the sequence of fsck_apfs
checks run at the start of Safe mode appears to be identical to those made during startup into normal user mode, and reports the same failures. Thus, in this respect Safe mode is no different from normal, despite Apple listing this as a feature of Safe mode.
It’s worth reading the fsck_apfs man
page to see the many options available in this command, which is the basis for all checks and repairs made to APFS volumes and containers. There are two in particular that you may prefer to invoke rather than using Disk Utility’s single option to both check and repair. My favourites that make it worth opening Terminal instead of Disk Utility are -n
to prevent it from attempting to make any repairs, and -S
to skip snapshots.
Given that fsck_apfs
appears unable to repair any errors it finds in snapshots and admits to that in its man page where it states that “no repairs can be made”, it puzzles me that without the -S
option it will still check all snapshots it comes across when running its checks. Perhaps it’s time to alter that default behaviour and make checking snapshots the explicit option.
Disk Utility’s First Aid is descended from a succession of utilities starting with the Disk First Aid app in Classic Mac OS, which separated disk Verify and Repair features.
Mac OS X merged the two Classic apps Drive Setup and Disk First Aid, but kept them as distinct tools within its new Disk Utility app and retained separate Verify and Repair features.
Those two features were still present in Mountain Lion or Mavericks, shown here, but soon afterwards only Repair was available.
Now that APFS is mature and has proven itself more than a worthy successor to HFS+, the need to both check and repair its containers and volumes should be abating. This would be a good time to return to separate controls, allowing users to check APFS in the expectation that there are no errors to be found. This is more important now because of the absence of any alternatives.
Disk Utility is in a unique position. Apple has chosen to lock third-parties out of developing competing disk repair utilities, in particular those that can be used in Recovery mode. Users can’t opt for apps with more or better features, putting the onus on Apple to provide a comprehensive solution that meets users’ wishes, not its idea of essential requirements.
fsck_apfs
is flexible and powerful, but has strange defaults that merit reconsideration.Here are this weekend’s Mac riddles to entertain you through family time, shopping and recreation.
1: The first chips with six-packs celebrated Halloween.
2: First with FireWire and almost see-through in its two-tone case.
3: It brought Exposé, Fast User Switching and Xcode.
To help you cross-check your solutions, or confuse you further, there’s a common factor between them. To celebrate this anniversary edition, that’s a number which can be expressed in a way that a Roman might read as being one less than it really is.
I’ll post my solutions first thing on Monday morning.
Please don’t post your solutions as comments here: it spoils it for others.
With Mac OS X came a new tool for installing and updating the system, quite different from what had been used in Classic Mac OS. The Mac OS X Installer app uses packages (.pkg), and metapackages (.mpkg) containing multiple packages to be installed together. Apple thus provided installations and updates as metapackages that could either be downloaded from its update servers using Software Update, or from the update’s web page. The same method was used until Big Sur, when updates changed again.
A system update in Mac OS X 10.1.3 in March 2002 was installed by the Installer app following authentication.
This update required just 148 MB of disk space, and could readily be accommodated by any of these volumes of 11.5 GB capacity.
Most updates were concluded by a period ‘optimising system performance’, as determined by the post-install scripts in the package.
Here, Software Update is delivering Security Update 2004-05-03 to Mac OS X 10.3.3 Panther. Some system components like QuickTime were still supplied and installed separately, but the great majority of Mac OS X was integrated into a whole, and there were no options to install separate components.
Over this period, the system and user data shared a single boot volume, and updating the system mainly involved replacement of updated files. Installer packages contained those replacements together with scripts that were run to update the contents of the boot volume. For much of this, firmware updates were still supplied and installed separately, although later they were integrated into macOS updates.
Until the introduction of System Integrity Protection (SIP) in El Capitan, the only protection provided to system files and folders was in their permissions. Incomplete or incorrect installations and updates were therefore not uncommon, as despite its name, SIP didn’t have any means of verifying the integrity of system files. A procedure was introduced to verify directory structures and permissions against those listed in the Bill of Materials (BoM) for macOS updates, by repairing permissions, but that was still unable to verify the integrity of the files themselves.
Installer metapackages are highly portable, and were commonly downloaded to be installed on multiple Macs. To keep updates as small as possible, they were provided in two forms: a Delta update converted only the previous release, while a Combo update contained everything required to update the last major version and all intermediate minor versions in a single step.
The High Sierra 10.13 upgrade in September 2017 brought greatest change, with its inclusion of Apple’s new file system APFS. Macs that didn’t have a Fusion Drive had their system volume converted to APFS during the upgrade, although it was another year before the same happened to Fusion Drives.
Updates didn’t always work out right for everyone. This was a common problem with High Sierra Supplemental Update of 29 November 2017, for example.
This all changed with the first version of macOS to boot from a signed snapshot, Big Sur, in November 2020, to support the improved Secure Boot of Apple silicon Macs. This abandoned the use of Installer packages, relying instead on an Update Brain integrated into each installer app and downloaded update.
From then onwards, Apple has provided several different presentations of macOS installers and updates:
softwareupdate
, and have to be downloaded from Apple’s servers, or delivered through a local Content Caching Server.softwareupdate
or direct from Apple’s servers, and are named InstallAssistant. When installed, these create a full installer app.There are further complications to this. For instance, an older macOS Installer app can’t be run in a newer major version of macOS. The workaround for that is to create a bootable installer volume, and boot from that to run its older installer.
macOS updates are supplied compressed, and require up to 30 minutes preparation before they can be installed.
There are now no optional installations, as every copy of any given version of macOS is identical within its Signed System Volume (SSV).
The size of these new updates is considerably greater than those of older Installer packages, particularly in Big Sur, as engineering optimisations were being performed.
This chart shows cumulative sizes of updates to macOS on Intel Macs from 10.14 Mojave, with its traditional single boot volume, through to macOS Sonoma 14.6. Each point represents the cumulative sum of all updates to that major version of macOS required to reach that minor version. Thus the point for 14.2 is the total of update sizes for 14.1, 14.1.1, 14.1.2 and 14.2. Sizes used aren’t those reported by Software Update, but those of the download itself, as reported in articles here, indexed on this page. Lines shown are best fits by linear regression.
Update sizes rose markedly from Mojave, with its single boot volume, to Catalina, with its boot volume group, and again to a peak in Big Sur, with the SSV. They fell again as Monterey introduced greater efficiency, and Ventura and Sonoma have been almost identical, and smaller than Mojave.
Apple silicon Macs started with the huge updates of Big Sur, which were even larger than those for Intel models, and benefitted from the improved efficiency of Monterey and Ventura. Unlike Intel Macs, though, Sonoma has seen further reduction in update sizes, although in each update they remain significantly larger than those for Intel models.
macOS Ventura in 2022 experimented with Rapid Security Responses (RSRs), much smaller updates intended to provide urgent security fixes to Safari and some of its supporting components. These take advantage of cryptexes, cryptographically verified disk images stored on the hidden Preboot volume. Updating cryptexes alone is far quicker too, as the SSV is left untouched. Unfortunately, the second RSR resulted in serious problems with Safari so had to be replaced three days later. The last RSR was released on 12 July 2023, and they appear to have been abandoned since.
Upgrading to the first release of the next major version of macOS had required downloading its full installer app from the App Store. Apple broke from this in macOS Ventura in October 2022, when that new macOS was installed as an update instead. Although this reduced its size and installation time required, it caught many users on the hop, as Apple provided no warning of the change. This approach has since become standard with both Sonoma and Sequoia.
Installing and updating the Mac’s operating system has probably changed more over the last 41 years than any other feature.