Read and write ext4 on MacOS Mojave 10.14

  1. git clone fuse-ext2(https://github.com/alperakcan/fuse-ext2). But I suggest use https://github.com/ipatch/fuse-ext2 before the project owner resolve the issue(https://github.com/alperakcan/fuse-ext2/issues/81)
  2. Follow the steps on each github readme.
  3. Problem solutions:
    1. If you meet: xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance, you should excute the command:
      sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
    2. If you meet: error: unable to find sdk 'macosx10.12' (in target 'fuse-ext2'), you should correct macosx10.12 like: SDKROOT = macosx and MACOSX_DEPLOYMENT_TARGET = 10.14
    3. If you meet the error like permission deined, please run the script with sudo.
  4. Here is the help text for fuse-ext2:
    ❯ fuse-ext2 --help
    
    fuse-ext2 0.0.9 29 - FUSE EXT2FS Driver
    
    Copyright (C) 2008-2015 Alper Akcan <alper.akcan@gmail.com>
    Copyright (C) 2009 Renzo Davoli <renzo@cs.unibo.it>
    
    Usage:    fuse-ext2 <device|image_file> <mount_point> [-o option[,...]]
    
    Options:  ro, force, allow_other
              Please see details in the manual.
    
    Example:  fuse-ext2 /dev/sda1 /mnt/sda1
    
    http://github.com/alperakcan/fuse-ext2/

    The best way to install(ONLY with problem1) is:

    git clone https://github.com/KiritoStudio/fuse-ext2.git
    cd fuse-ext2/build
    sudo ./macos-build-fuse-ext2-v0.0.10.sh

     

 

Fix mtr command on Mac 10.14

brew install mtr
sudo ln -s /usr/local/sbin/mtr-packet /usr/bin/mtr-packet
sudo ln -s /usr/local/Cellar/mtr/0.92/sbin/mtr /usr/bin/mtr
sudo mtr www.google.com

 

custom lxc container for QNAP NAS

# download the template from source
lxc-create -t download -n test -- -a arm64 -d debian -r stretch --flush-cache

Setting up the GPG keyring
Downloading the image index

---
DIST RELEASE ARCH VARIANT BUILD
---
debian stretch arm64 default 20190105_05:26
---

Downloading the image index
Downloading the rootfs
Downloading the metadata
The image cache is now ready
Unpacking the rootfs

---
You just created a Debian stretch arm64 (20190105_05:26) container.

To enable SSH, run: apt install openssh-server
No default root or user password are set by LXC.

# attach to the lxc
lxc-attach -n test

# reset the root password in lxc
root@test:~# passwd root

# update apt and install openssh-server in lxc 
apt update
apt install openssh-server

The help-info

LXC container image downloader

Special arguments:
[ -h | --help ]: Print this help message and exit.
[ -l | --list ]: List all available images and exit.

Required arguments:
[ -d | --dist <distribution> ]: The name of the distribution
[ -r | --release <release> ]: Release name/version
[ -a | --arch <architecture> ]: Architecture of the container

Optional arguments:
[ --variant <variant> ]: Variant of the image (default: "default")
[ --server <server> ]: Image server (default: "images.linuxcontainers.org")
[ --keyid <keyid> ]: GPG keyid (default: 0x...)
[ --keyserver <keyserver> ]: GPG keyserver to use
[ --no-validate ]: Disable GPG validation (not recommended)
[ --flush-cache ]: Flush the local copy (if present)
[ --force-cache ]: Force the use of the local copy even if expired

LXC internal arguments (do not pass manually!):
[ --name <name> ]: The container name
[ --path <path> ]: The path to the container
[ --rootfs <rootfs> ]: The path to the container's rootfs
[ --mapped-uid <map> ]: A uid map (user namespaces)
[ --mapped-gid <map> ]: A gid map (user namespaces)

If you like alpine, you can use the following command:

sudo MIRROR=http://mirrors.ustc.edu.cn/alpine lxc-create -t download -n alpine -- -a arm64 -d alpine -r 3.9  --flush-cache