mirror of
				https://github.com/ItsDrike/dotfiles.git
				synced 2025-11-04 09:16:36 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			39 lines
		
	
	
	
		
			968 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
	
		
			968 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
# Ensure we run as root
 | 
						|
if [ "$EUID" -ne 0 ]; then
 | 
						|
    echo "Must be ran as root"
 | 
						|
    exit 1
 | 
						|
fi
 | 
						|
 | 
						|
# Take chroot user as 1st argument, default to root
 | 
						|
if [ $# -ge 1 ]; then
 | 
						|
    USERNAME="$1"
 | 
						|
else
 | 
						|
    USERNAME="root"
 | 
						|
fi
 | 
						|
 | 
						|
MOUNT_POINT="/mnt/arch"
 | 
						|
 | 
						|
# Make sure the partition is mounted according to fstab
 | 
						|
mount "$MOUNT_POINT" 2> /dev/null
 | 
						|
 | 
						|
# Mount necessary directories for chroot to be possible
 | 
						|
mount --types proc /proc "$MOUNT_POINT/proc"
 | 
						|
mount --rbind /sys "$MOUNT_POINT/sys"
 | 
						|
mount --make-rslave "$MOUNT_POINT/sys"
 | 
						|
mount --rbind /dev "$MOUNT_POINT/dev"
 | 
						|
mount --make-rslave "$MOUNT_POINT/dev"
 | 
						|
 | 
						|
# Use /bin/su for chrooting with --login to also run
 | 
						|
# /etc/profile and ~/.profile or ~/.zprofile
 | 
						|
chroot "$MOUNT_POINT" "/bin/su" "$USERNAME" --login
 | 
						|
 | 
						|
# Unmount recursively mounted directories
 | 
						|
umount -l "$MOUNT_POINT/dev"
 | 
						|
umount -l "$MOUNT_POINT/sys"
 | 
						|
umount -l "$MOUNT_POINT/proc"
 | 
						|
umount -R "$MOUNT_POINT"
 | 
						|
 | 
						|
# Remount partition according to fstab
 | 
						|
mount "$MOUNT_POINT"
 |