buildFHSUserEnv creates a small root directory

I’m currently attempting to use nix-xilinx to create an imperative Xilinx tools installation. This uses buildFHSUserEnv. Unfortunately, the apparent storage space in the resulting root directory is quite small (63G). The Xilinx tools need more to this to install, and therefore won’t. In reality, I have terrabytes of free space.

To enter into the xilinx shell, I run

nix run gitlab:doronbehar/nix-xilinx#xilinx-shell

I then run Xilinx_Unified_2022.2_1014_8888/xsetup, which complains about insufficient free space, as stated.

Running df corroborates this:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs            63G   16K   63G   1% /
devtmpfs        6.3G     0  6.3G   0% /dev
tmpfs            63G   72M   63G   1% /dev/shm
/dev/dm-0       5.7T  4.3T  1.3T  78% /nix
tmpfs            63G     0   63G   0% /nix/store/1x4ijm9r1a88qk7zcmbbfza324gx1aac-glibc-2.37-8/etc
tmpfs            63G     0   63G   0% /nix/store/bg2bd2v3bpajpspwn3il3iaj999yh6z3-glibc-2.37-8/etc
/dev/nvme0n1p1  510M  212M  299M  42% /boot
/dev/dm-0       5.7T  4.3T  1.3T  78% /home
tmpfs            32G   11M   32G   1% /run
tmpfs            63G  624K   63G   1% /run/wrappers
tmpfs            13G   20K   13G   1% /run/user/1000
/dev/dm-0       5.7T  4.3T  1.3T  78% /srv
/dev/dm-0       5.7T  4.3T  1.3T  78% /tmp
/dev/dm-0       5.7T  4.3T  1.3T  78% /var
tmpfs            63G     0   63G   0% /tmp/.X11-unix

However, I’m actually using BTRFS, so df isn’t accurate (from outside the shell):

$ sudo btrfs fi usage -T /
[sudo] password for matt:
Overall:
    Device size:                   5.64TiB
    Device allocated:              4.69TiB
    Device unallocated:          969.02GiB
    Device missing:                  0.00B
    Used:                          4.29TiB
    Free (estimated):              1.25TiB      (min: 791.76GiB)
    Free (statfs, df):             1.25TiB
    Data ratio:                       1.00
    Metadata ratio:                   2.00
    Global reserve:              512.00MiB      (used: 0.00B)
    Multiple profiles:                  no

             Data      Metadata  System
Id Path      single    RAID1     RAID1     Unallocated
-- --------- --------- --------- --------- -----------
 1 /dev/dm-0 812.96GiB 110.00GiB  32.00MiB     8.02GiB
 2 /dev/dm-1 806.46GiB 110.00GiB  32.00MiB    15.00GiB
 3 /dev/dm-4   2.90TiB         -         -    12.99TiB
-- --------- --------- --------- --------- -----------
   Total       4.48TiB 110.00GiB  32.00MiB    13.01TiB
   Used        4.18TiB  60.13GiB 592.00KiB

Because of the glibc issue I’ve so far been unable to run this command inside the shell.

And df from outside the shell:

$ df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 6.3G     0  6.3G   0% /dev
tmpfs                     63G   57M   63G   1% /dev/shm
tmpfs                     32G   11M   32G   1% /run
tmpfs                     63G  624K   63G   1% /run/wrappers
/dev/dm-0                5.7T  4.3T  1.3T  78% /
/dev/nvme0n1p1           510M  212M  299M  42% /boot
/dev/mapper/ZFN3PNH2_p1  3.7T  3.7T  906M 100% /.backup
tmpfs                     13G   20K   13G   1% /run/user/1000

Why is buildFHS only seeing 63G? Any ideas about how to get around this problem?

Well buildFHSUserEnv uses bubblewrap under the hood, which sets up a tmpfs file system. So it is probably limited by your RAM (or something related to it).

I ended up just changing the installation location to /opt/Xilinx and it reported much more space and the installation worked.