对Macbook SDXC卡槽的拓展应用


三种应用场景

近几年的macbook pro又把SD卡槽做回来了,但是这个SDXC卡槽深度只有正常SD卡的一半左右:

在网络上能找到一些讨论:🔗 [一个关于新 MacBook SD 卡槽的想法 - V2EX] https://v2ex.com/t/809021

所以这个SDXC卡槽目前大概有这么几个用途:

  1. (非持久化)就是个接口,用来传输数据用的,比如相机SD卡的数据传输电脑(本文不讨论这个)
  2. (持久化)用来简单扩容小容量macbook,存储一些对读写要求不高、访问频率低的“冷数据”,比如长期不用但又不想删的电影、录屏、音频文件
  3. (持久化)用来存放chrome/edge/firefox的cache/profile文件夹,目的是节约macbook自带SSD的硬盘写入

本文只讨论上面的2、3两个用途。所谓持久化,意思就是这张卡可以一直插在macbook的这个SD卡槽里,不需要频繁取下来/插回去。所以标准规格的SD卡是不行的,因为标准SD卡插进去以后会凸出来一大截(除非你的macbook长久放在同一个位置当主机使用,不需要装电脑包里,不需要带到其他地方去)。

SDXC卡套

micro SD卡的选择有很多(后面单独说),SDXC卡套的选择很少,我只找到一个最合适的:

SDXC卡套:baseqi 420A(它在amazon上的商品描述是“只支持UHS-II”,但其实并不是,它也支持UHS-1),这玩意好像淘宝也有官方旗舰店卖,amazon链接:🔗 [Amazon.com: BASEQI UHS-II Aluminum microSD Adapter for 2021 M1 MacBook Pro 14 & 16” (Space Gray) : Electronics] https://www.amazon.com/BASEQI-Aluminum-microSD-Adapter-MacBook/dp/B0B76FDJ9R/

效果(来自amazon评论区):

在我的macbook m3 16''上实测也能完全插进去且几乎没有凸出。

micro SD卡的选择(只是用来简单扩容macbook,存放电影等冷数据)

选好了SDXC卡套,接下来是选micro SD卡。如果只是用来简单扩容macbook,存放一些电影、音频等“冷数据”,对4k读写没有要求,那么买主流品牌的旗舰micro SD卡就行:(下面仅仅列举了几个型号作为例子,都是A2 V30标准的卡)。

读写速度方面,由于baseqi 420A的设计问题(或者也有可能是macbook的SDXC卡槽设计问题),速度相比于读卡器跑分会有所折扣,以我的samsung pro plus 256GB为例,网上找到的windows + 常规读卡器的跑分为:

(图片来自亚马逊评论区)

在我的macbook上的跑分(套了baseqi 420A卡套):

baseqi + APFS
baseqi + APFS加密

由于micro SD卡本身的设计限制和SDXC卡套的进一步削弱,最终导致这张micro SD卡的读写能力非常有限,也就只能拿来做简单的macbook扩容,存储电影、音频等访问频率低的“冷数据”,不适合存储一堆小文件并对这些小文件反复读写(本文后面有提到,这种消费级micro SD卡反复读写小文件可能会在短期内直接用废这张卡)。

以简单扩容macbook为目的的话题比较简单,到这里就结束了,你只需要买一个baseqi 420A卡套和一张品牌的大容量micro SD卡即可。本文接下来的部分主要讨论的是另一个使用场景(chrome数据盘、4k读写、全局磨损平衡、工业级micro SD卡)。

把Micro SD卡作为Chrome/Edge/Firefox的数据盘

修改Chrome数据/缓存文件夹的路径

我是重度chrome使用者,根据软件统计我的chrome每天差不多要写入50GB的数据,而我一直很在意macbook那个焊死的SSD的硬盘写入寿命。虽然这种担心几乎是不必要的(SSD的寿命远比我们想象的长),但我还是想试一试把chrome的数据/缓存文件夹搬到外置存储空间上(也就是micro SD卡),这样我就可以愉快且毫无顾虑地使用chrome了(其实是心理作用):

(以chrome为例,edge/firefox见后面的补充说明)

首先要确定我们搬迁的2个文件夹:

# 缓存文件夹(原始位置)
~/Library/Caches/Google/Chrome


# chorme profile文件夹(原始位置)
~/Library/Application Support/Google/Chrome

把这2个文件夹里面的内容复制到micro SD卡里面,然后用下面的命令启动chrome,并要求chrome使用我们规定的cache/profile路径:

$  open -a "/Applications/Google Chrome.app" --args  --disk-cache-dir=/PATH/TO/SD_CARD/cache --user-data-dir=/PATH/TO/SD_CARD/profile

然后你会发现新启动的chrome会使用你规定的路径读写cache/profile. 如果操作正确并且把原本chrome文件复制到了正确的位置,用新命令启动的chrome是能无缝衔接你的所有设置/cookie/书签/历史记录...的,不需要重新设置任何东西。如果你发现你启动了一个空白的chrome并且一切都要重头再来,那可能是某个迁移的环节出了问题。

注意:如果存放chrome cache/profile文件夹的存储设备直接(物理)断开连接,chrome会直接闪退,你需要把存储设备再次挂载上去才能继续chrome之前的工作。

当然,现在这个迁移过的chrome无法通过原本的方式直接启动了(直接点击图标启动会读取默认路径的文件),只能通过这几个方法:

  1. 还是用命令行启动
  2. 制作另一个app来启动这个迁移后的chrome
  3. 直接修改chrome.app里面的内容

方法2和3见这个教程:🔗 [macos - How do I pass command line arguments to Dock items? - Super User] https://superuser.com/questions/271678/how-do-i-pass-command-line-arguments-to-dock-items

我选择的是方法2. 其实方法1和2基本没差别,因为大多数时候我的chrome会在启动macOS以后打开然后一直放在那里,直到下一次macOS系统重启。


Edge的修改逻辑、启动方式、启动参数和chrome相同(原始profile路径为 ~/Library/Application Support/Microsoft Edge ,原始cache路径为 ~/Library/Caches/Microsoft Edge .

Firefox不需要修改.app的启动参数,但需要访问 about:config 来修改profile的存储位置(Firefox的profile文件夹同时包含了用户数据和缓存文件,所以只需要设置这一个参数)。实际上 about:config 的设置内容会写在 ~/Library/Application Support/Firefox/profiles.ini 文件里,所以直接修改profiles.ini也可以。
如果你有多个Firefox profiles,可以在profiles.ini文件里面修改 StartWithLastProfile=0 ,这样Firefox每次启动的时候都会询问你要使用哪个profile.

全局磨损平衡的micro SD卡

先说结论。我在2024年6月买了一张samsung pro plus (256GB)并作为chrome数据盘愉快使用了5个月。随后我遇到到了连续的、明显的chrome卡顿、白屏问题,无论如何都无法解决。在查阅了很久资料以后我才发现原来micro SD卡也有全局磨损平衡这方面的问题,而chrome在使用过程中会反复读写数以万计的小文件(用micro SD卡作为树莓派系统盘的用户可能也有类似体验),最终导致我的samsung pro plus使用5个月后就几乎完全报废。最后我于2024年12月购买了一张kingston industrial (32GB),目前正在愉快使用中(这张卡可能至少要用半年以上才能得出最终结论)。

全局磨损平衡这个问题实在是太麻烦了。总的来说,经过自身体验(几乎用废了一张samsung pro plus)以及网上的诸多资料,我终于找到了一些“窍门”:

使用场景价格(只考虑正规零售渠道的价格)关键词涉及型号
没有全局磨损平衡存储电影、视频,行车记录仪等以samsung pro ultimate这种所谓的“旗舰卡”为例,256GB的价格为$35左右。产品描述网页里面反复强调这种卡的读写速度有多快性能有多强容量有多大,但都不会提“磨损平衡”这个词samsung pro plus, kingston canvas GO, sandisk extreme pro...(很多,零售级micro sd卡基本上都是)
有全局磨损平衡反复读写,尤其是小文件的反复读写(比如树莓派OS、chrome数据文件夹)差不多就要1美元1GB. 32GB的卡就能卖$32, 64GB的卡就能卖$64工业级、全局磨损平衡kingston industrial, sandisk industrial, WD industrial...(很少,都是工业级micro sd卡)

总之,工业级的、制造商明确声明了有全局磨损平衡功能的micro sd卡很贵且不容易通过零售渠道买到。我找了半天也就找到kingston industrial和sandisk industrial这两个比较容易买到的型号。

下面是我在收集这方面资料时写的笔记:


人外有人天外有天。之前我一直以为类似samsung pro ultimate/samsung pro plus这样的卡是全方面都最优的选择了。但事实证明还有高手。工业级的TF卡要贵得多,而且很难在amazon, ebay这样常见的零售平台买到。感谢kingston, sandisk出了几款能容易买到的工业级TF卡。


磨损平衡:

图片来自https://www.mydigit.cn/thread-349896-1-1.html

所以接下来只考虑“全局磨损平衡”,也就是被广泛证实/被写进产品介绍里面的磨损平衡才算数。目前我就收集到了这些卡:

  1. 在这份文档里,产品介绍里面写明了wear leveling的:🔗 [sdcard.org/ver_9_0_promotion/pdf/IndastrialApplicationSDCard2024.pdf] https://www.sdcard.org/ver_9_0_promotion/pdf/IndastrialApplicationSDCard2024.pdf . 我找了一会也就找到kingston industrial这一款能用google搜出正常零售价格的产品。
  2. 根据🔗 [Quick reminder that SD cards with wear-leveling are now fairly common (i.e. WD Purple microSD) : r/raspberry_pi] https://www.reddit.com/r/raspberry_pi/comments/ex7dvo/quick_reminder_that_sd_cards_with_wearleveling/ 的介绍,发帖人去问了WD的人,给出的回复是WD purple有全局磨损技术。(Our WD Purple MicroSD's do both static and dynamic wear-leveling. Meaning all blocks across whole address space are considered for wear leveling regardless of if and how the blocks are used. This keeps the number of program erase cycles consistent on all blocks.)
  3. 🔗 [读取TF卡S.M.A.R.T.信息第二季 12款工业级TF卡评测] https://www.mydigit.cn/thread-349896-1-1.html,里面提到的一些工业级TF卡(其中就有kingston industrial和sandisk industrial)

再加上零售渠道(是不是容易买到)的限制,最后就3个型号:

  1. kingston industrial
  2. sandisk industrial
  3. wd purple(存疑)

wd purple存疑的原因是,尽管有官方开发者背书,但它还是“太便宜了”。主流工业TF卡价格几乎是1美元1GB,而wd purple用19美元就能买到64GB. 此外,wd purple在上面那份IndastrialApplicationSDCard2024.pdf里面被归为“监控卡”,且产品特性里面没有提到wear leveling. 所以我最后还是选择了kingston industrial.

所以最后我买了Kingston industrial 32GB:🔗 [Industrial Grade microSD Card - Kingston Technology] https://www.kingston.com/en/memory-cards/industrial-grade-microsd-uhs-i-u3



 Last Modified in 2025-02-11 

Leave a Comment Anonymous comment is allowed / 允许匿名评论