nix
nix copied to clipboard
MacOS 15 Sequoia: The APFS Volume must be mounted in order to be encrypted
Platform
- [ ] Linux:
- [x] macOS
- [ ] WSL
Additional information
N/A
Output
The APFS Volume must be mounted in order to be encrypted
elal@Mac ~ % sh <(curl -L https://nixos.org/nix/install)
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 4267 100 4267 0 0 7673 0 --:--:-- --:--:-- --:--:-- 2083k
downloading Nix 2.24.9 binary tarball for aarch64-darwin from 'https://releases.nixos.org/nix/nix-2.24.9/nix-2.24.9-aarch64-darwin.tar.xz' to '/var/folders/4y/ztjs3qpd4vx2y_yzdvvpc9qc0000gn/T/nix-binary-tarball-unpack.XXXXXXXXXX.Ab8ijsdksp'...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 14.6M 100 14.6M 0 0 22.3M 0 --:--:-- --:--:-- --:--:-- 22.3M
Switching to the Multi-user Installer
Welcome to the Multi-User Nix Installation
This installation tool will set up your computer with the Nix package
manager. This will happen in a few stages:
1. Make sure your computer doesn't already have Nix. If it does, I
will show you instructions on how to clean up your old install.
2. Show you what I am going to install and where. Then I will ask
if you are ready to continue.
3. Create the system users (uids [351..382]) and groups (gid 30000)
that the Nix daemon uses to run builds. To create system users
in a different range, exit and run this tool again with
NIX_FIRST_BUILD_UID set.
4. Perform the basic installation of the Nix files daemon.
5. Configure your shell to import special Nix Profile files, so you
can use Nix.
6. Start the Nix daemon.
Would you like to see a more detailed list of what I will do?
[y/n] y
I will:
- make sure your computer doesn't already have Nix files
(if it does, I will tell you how to clean them up.)
- create local users (see the list above for the users I'll make)
- create a local group (nixbld)
- install Nix in /nix
- create a configuration file in /etc/nix
- set up the "default profile" by creating some Nix-related files in
/var/root
- back up /etc/bashrc to /etc/bashrc.backup-before-nix
- update /etc/bashrc to include some Nix configuration
- back up /etc/zshrc to /etc/zshrc.backup-before-nix
- update /etc/zshrc to include some Nix configuration
- back up /etc/bash.bashrc to /etc/bash.bashrc.backup-before-nix
- update /etc/bash.bashrc to include some Nix configuration
- create a Nix volume and a LaunchDaemon to mount it
- create a LaunchDaemon (at /Library/LaunchDaemons/org.nixos.nix-daemon.plist) for nix-daemon
Ready to continue?
[y/n]
Sorry, I didn't understand. I can only understand answers of y or n
[y/n] y
---- let's talk about sudo -----------------------------------------------------
This script is going to call sudo a lot. Every time I do, it'll
output exactly what it'll do, and why.
Just like this:
---- sudo execution ------------------------------------------------------------
I am executing:
$ sudo echo
to demonstrate how our sudo prompts look
This might look scary, but everything can be undone by running just a
few commands. I used to ask you to confirm each time sudo ran, but it
was too many times. Instead, I'll just ask you this one time:
Can I use sudo?
[y/n] y
Yay! Thanks! Let's get going!
~~> Fixing any leftover Nix volume state
Before I try to install, I'll check for any existing Nix volume config
and ask for your permission to remove it (so that the installer can
start fresh). I'll also ask for permission to fix any issues I spot.
/dev/fd/63:1: parser error : Start tag expected, '<' not found
>
^
unable to parse /dev/fd/63
During install, I add 'nix' to /etc/synthetic.conf, which instructs
macOS to create an empty root directory for mounting the Nix volume.
Can I remove /etc/synthetic.conf?
[y/n] y
---- sudo execution ------------------------------------------------------------
I am executing:
$ sudo rm /etc/synthetic.conf
to remove /etc/synthetic.conf
During install, I add '/nix' to /etc/fstab so that macOS knows what
mount options to use for the Nix volume.
Can I remove /etc/fstab?
[y/n] y
---- sudo execution ------------------------------------------------------------
I am executing:
$ sudo rm /etc/fstab
to remove /etc/fstab
The installer adds a LaunchDaemon to mount your Nix volume: org.nixos.darwin-store
Can I remove it?
[y/n] y
---- sudo execution ------------------------------------------------------------
I am executing:
$ sudo launchctl bootout system/org.nixos.darwin-store
to terminate the daemon
---- sudo execution ------------------------------------------------------------
I am executing:
$ sudo rm /Library/LaunchDaemons/org.nixos.darwin-store.plist
to remove the daemon definition
~~> Checking for artifacts of previous installs
Before I try to install, I'll check for signs Nix already is or has
been installed on this system.
---- Nix config report ---------------------------------------------------------
Temp Dir: /var/folders/4y/ztjs3qpd4vx2y_yzdvvpc9qc0000gn/T/tmp.goi5JxiJWr
Nix Root: /nix
Build Users: 32
Build Group ID: 30000
Build Group Name: nixbld
build users:
Username: UID
_nixbld1: 351
_nixbld2: 352
_nixbld3: 353
_nixbld4: 354
_nixbld5: 355
_nixbld6: 356
_nixbld7: 357
_nixbld8: 358
_nixbld9: 359
_nixbld10: 360
_nixbld11: 361
_nixbld12: 362
_nixbld13: 363
_nixbld14: 364
_nixbld15: 365
_nixbld16: 366
_nixbld17: 367
_nixbld18: 368
_nixbld19: 369
_nixbld20: 370
_nixbld21: 371
_nixbld22: 372
_nixbld23: 373
_nixbld24: 374
_nixbld25: 375
_nixbld26: 376
_nixbld27: 377
_nixbld28: 378
_nixbld29: 379
_nixbld30: 380
_nixbld31: 381
_nixbld32: 382
Ready to continue?
[y/n] y
---- Preparing a Nix volume ----------------------------------------------------
Nix traditionally stores its data in the root directory /nix, but
macOS now (starting in 10.15 Catalina) has a read-only root directory.
To support Nix, I will create a volume and configure macOS to mount it
at /nix.
~~> Configuring /etc/synthetic.conf to make a mount-point at /nix
---- sudo execution ------------------------------------------------------------
I am executing:
$ sudo /usr/bin/ex -u NONE -n /etc/synthetic.conf
to add Nix to /etc/synthetic.conf
~~> Creating a Nix volume
---- sudo execution ------------------------------------------------------------
I am executing:
$ sudo /usr/sbin/diskutil apfs addVolume disk3 APFS Nix Store -nomount
to create a new APFS volume 'Nix Store' on disk3
---- sudo execution ------------------------------------------------------------
I am executing:
$ sudo /usr/sbin/diskutil unmount force disk3s12
to ensure the Nix volume is not mounted
disk3s12 was already unmounted
~~> Configuring /etc/fstab to specify volume mount options
---- sudo execution ------------------------------------------------------------
I am executing:
$ sudo /usr/sbin/vifs
to add nix to fstab
~~> Encrypt the Nix volume
---- sudo execution ------------------------------------------------------------
I am executing:
$ sudo /usr/sbin/diskutil mount Nix Store
to mount your Nix volume for encrypting
Volume Nix Store on Nix Store mounted
---- sudo execution ------------------------------------------------------------
I am executing:
$ sudo /usr/bin/security -i
to add your Nix volume's password to Keychain
---- sudo execution ------------------------------------------------------------
I am executing:
$ sudo /usr/sbin/diskutil apfs encryptVolume Nix Store -user disk -stdinpassphrase
to actually encrypt your Nix volume
The APFS Volume must be mounted in order to be encrypted
---- oh no! --------------------------------------------------------------------
Oh no, something went wrong. If you can take all the output and open
an issue, we'd love to fix the problem so nobody else has this issue.
:(
We'd love to help if you need it.
You can open an issue at
https://github.com/NixOS/nix/issues/new?labels=installer&template=installer.md
Or get in touch with the community: https://nixos.org/community
Priorities
Add :+1: to issues you find important.
Sounds like:
- #11426
Can you check out the open questions at the end of that thread to see if you can help us isolate the issue?
Sounds like:
* [Volume failed to mount: Nix fails to install on macOS if a partial install already created a `Nix Store` APFS volume #11426](https://github.com/NixOS/nix/issues/11426)Can you check out the open questions at the end of that thread to see if you can help us isolate the issue?
I think the problem was that I had multiple unmounted Nix Store volumes (probably from past failed attempts?), so I removed them, and that fixed it.
The fix (for others encountering this issue): I simply removed them by doing # diskutil apfs deleteVolume diskXsY.
- where
diskXsYis the identifier taken from$ diskutil list.
Then I could just rerun the install script, and it worked.