Reading view

There are new articles available, click to refresh the page.

What to do when macOS won’t let you unmount a volume

It always happens when you’re in a rush to eject an external disk, or when you’re trying to run First Aid in Disk Utility: you’re told that a volume or disk can’t be unmounted or ejected because “one or more programs may be using it” or similar excuses. Not that macOS gives you the slightest idea as to which programs are. This article looks at what you can do next.

Whatever you do, don’t just pull the cable of an external disk: not only will your Mac complain, but you could end up damaging the contents of its files, or even the file system on that volume.

Force eject

This is often offered as an option in the dialog, and if it’s available it’s worth trying if you don’t have the time to carry out a more orderly unmounting. macOS should then identify the processes that are accessing the disk, and terminate their access. That can take time, and seldom appears successful even if you allow a minute or two for it to complete. However, when it does work, it’s likely to be the simplest solution.

Try again

In Disk Utility, this is usually the best option, and if necessary you can try several times. You should also double-check that you’re trying the correct volume: if it’s one of the current boot volume group, System or Data, then you’re better off running First Aid in Recovery mode anyway.

firstaid04

Getting nowhere

When all else fails, the next step is to identify what’s using files on that volume or disk, so you can decide whether to force quit that process in Activity Monitor. Don’t do that blindly, as you could end up killing processes that your Mac does need to run.

To discover which files are open on any volume, use the command
sudo lsof /Volumes/myVol
where myVol is the name of the volume. If you’re unsure how to enter a volume name containing a space, locate it in the Finder’s listing for your Mac, and drag and drop that into Terminal. Once you’ve entered that, type your admin user password at the prompt, and you’ll see a list with entries like
mds 367 root 33r DIR 1,28 192 2 /Volumes/External2
mds 367 root 35u REG 1,28 0 87 /Volumes/External2/.Spotlight-V100/Store-V2/3DD5246F-9AEA-4F0E-9A53-AA63783C3C70/journalExclusion

which are the files and directories open on that volume. This needs to be run using sudo, as otherwise you won’t see any files that are opened by processes running as root, which are most often the culprits. Some recommend using grep, but that shouldn’t be necessary, as lsof is capable of its own filtering.

The information given about each open file contains, from the left:

  • an abbreviated name of the command associated, here mds, the Spotlight metadata server;
  • the open mode, as the single character following two digits, e.g. 33r is opened for read access only, while 35u is opened for read and write access;
  • the type, DIR meaning directory, and REG meaning a regular file;
  • the full path to the file or directory.

If you’d rather use an app, then my personal favourite is Sloth from here. Although it’s not notarized, it does everything that I’d want in terms of matching lsof or fuser‘s features. Most importantly, if you click its padlock at the lower right and authenticate, it will show all processes running as root.

If your Mac is running Sequoia, getting Sloth through its security checks is a bit of pain (and intentionally so). You can do this the ‘official way’ by downloading the app, unZipping it, and moving it into your Applications folder. When you try to run it, that will be denied and you’ll end up having to give it your individual authorisation in Privacy & Security settings. Alternatively, you can run the risk and cheat by stripping the com.apple.quarantine extended attribute from its Zip file first, so it doesn’t undergo full first run checks. Although that may be simpler, it also forces you to place complete trust in the app you’ve downloaded.

Once you know which processes are accessing files on that volume, you can decide whether to open the listing in one of Activity Monitor’s views, such as CPU or Disk, select that process, and click on the Stop tool to kill it.

訓練量,到底怎麼算?

健身課表/課表中,除了動作選擇外,最重要的就是訓練強度和訓練量了。但訓練量有許多不同的定義,本文即是來解釋訓練量的定義方法及理由(原文請見 ig @vin_training

簡介

訓練量,是大家耳熟能詳的名詞,是安排課表時重要的變因之一。

我自己最初接觸這個名詞時,學到的是「訓練量=次數x組數x重量」。但後來慢慢發現,不是所有人都這樣定義的。

譬如,許多健力、健美課表上的每日「volume」欄位就是指當天的「sets (組數)」。而台灣人應該也不陌生的 Juggernaut Training System 的 「訓練量專家」 Mike Isratel (水肥哥翻譯過他的「練胸完全指南」)也把訓練量定義為組數。

那訓練量到底該怎麼定義呢?本文整理了近幾年的研究並給出我個人的推論,但這並不是學界公認的定義,也不是每個健身者都認同的定義。事實上,有些專家會用更複雜的計算方式來定義訓練量(例如,考慮自覺強度或 1RM 百分比)。

因此本文主要目的是分享訓練量的「簡易定義方式」,以供大家參考,並不是說這就是唯一的正解。

For 肌肉量成長:訓練量=組數

傳統上,我們常用「次數x組數x重量」當作訓練量的定義,但就出現了一個問題:為什麼研究(1)會發現,當訓練量相同時,大重量訓練比小重量訓練能得到更多的肌肉量成長?之後,科學家發現,若把訓練量定義為「達到力竭的組數」的話,大重量訓練就跟小重量訓練有同樣的肌肥大效果(研究2研究3)。

[實際應用]

在設計課表時,訓練量是我們常常要操作或控制的變因。許多人把訓練量視為「次數x組數x重量」,但或許把訓練量視為「足夠難的組數」會是更好的方法。

For 肌力:訓練量=組數

關於訓練量與肌力的研究相對不一致。有研究(45)發現訓練的組數越多,肌力成長就越高;但也有研究(67)得出高組數與低組數對肌力成長的效果沒有差別。

但不變的是,大重量對最大肌力的成長一定比低重量大。此外因重量跟次數是互相影響的,所以大重量必伴隨低次數。因此,以肌力為目標的話,將訓練量定義為「組數」即可。

[實際應用]

若目標是最大肌力,那一定要練大重量(>75% 1RM 夠的重量),且時不時需要練>90% 1RM 的重量。但訓練量是不是重點呢?短期可能不是,因此比賽前減少訓練量是不會影響肌力成長的。但長期而言,因肌肉量愈高則肌力成長的潛力越大,所以高訓練量仍會比較好。

For 熱量消耗:訓練量=次數x組數x重量

當訓練量=「次數x組數x量」時,相同的訓練量會有類似的熱量消耗。

因為熱量消耗取決於做功,而做功等於「力x距離x總次數」。所以在距離相同的情況下(也就是你深蹲不會越蹲越高),熱量消耗就可以用「重量x總次數」來預測,而總次數就是次數x組數。

[實際應用]

如果你重訓的目標就是「熱量消耗」的話,那挑選較輕的重量確實能較有效累積一個訓練日的熱量消耗。但我仍會推薦重訓就以肌力、肌肉量、或肌耐力為目標,熱量方面靠飲食更有效。

另一個能觀察到的現象是,初學者通常深蹲或硬舉個 10 下後仍臉不紅氣不喘,但若是能蹲 200 公斤 10 下的人,蹲完肯定會攤死在地板上,因為熱量消耗實在太大了,所以休息時有氧系統需要火力全開提供能量。

結論

若你想尋求最簡單的方法來追蹤訓練量,那用「組數」算是不錯的選擇。但一組三下 vs 一組 15 下對身體的感覺確實不同,所以心中也要記得「組數」只是個訓練量的估算而已,最終還是要檢測自己的身體反應。

❌