Kali/Persistent USB
From charlesreid1
Start with your Kali USB drive. See Kali/Live USB for details.
Contents
Instructions
Following the instructions here: http://docs.kali.org/downloading/kali-linux-live-usb-persistence
Start by flashing a USB drive with the Kali image. This article assumes this as a starting point. There should be two partitions on the USB drive.
The procedure we follow below is to create a new partition for storing persistent data. The persistent partition will start right above the second partition (the Kali Live partition). The existing partitions with Kali will take up about 3 GB, so the persistent partition will be about (N - 3) GB in size (where N is the size of your jump drive in GB).
Once we create the partition, we'll format it as an ext3 file system, then create a persistence.conf file to make it usable by Kali as a persistent partition.
Find Your Disk
Start by listing disks.
Linux
On Linux,
$ fdisk -l
Look for the USB drive. Should be at /dev/sdb
.
Mac
On Mac,
$ diskutil list
The USB drive should be at /dev/disk1
or /dev/disk2
.
Create Persistent Partition
Now we will create a partition on the USB drive, which will store persistent data.
Before
Here is what the disks look like before, from Kali Linux, running fdisk (if you can't find the fdisk utility, make sure you are root!).
The output of fdisk -l
shows a block of information about each disk device. Here, we have /dev/sda
, which is the hard drive on the machine, with several NTFS/linux partitions, and /dev/sdb
, the USB jump drive with Kali installed:
root@kali:~# fdisk -l Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0xd228527c Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 718847 716800 350M 7 HPFS/NTFS/exFAT /dev/sda2 718848 230348799 229629952 109.5G 7 HPFS/NTFS/exFAT /dev/sda3 457674752 488394751 30720000 14.7G 27 Hidden NTFS WinRE /dev/sda4 230350846 457674751 227323906 108.4G 5 Extended /dev/sda5 448380928 457674751 9293824 4.4G 82 Linux swap / Solaris /dev/sda6 230350848 448380927 218030080 104G 83 Linux Partition 4 does not start on physical sector boundary. Partition table entries are not in disk order. Disk /dev/sdb: 58.9 GiB, 63229132800 bytes, 123494400 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x8312dfc0 Device Boot Start End Sectors Size Id Type /dev/sdb1 * 64 5636095 5636032 2.7G 17 Hidden HPFS/NTFS /dev/sdb2 5636096 5637503 1408 704K 1 FAT12
Create Partition
The next step is to create the partition. The size of Kali Linux is a little under 3 GB:
Disk /dev/sdb: 58.9 GiB, 63229132800 bytes, 123494400 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x8312dfc0 Device Boot Start End Sectors Size Id Type /dev/sdb1 * 64 5636095 5636032 2.7G 17 Hidden HPFS/NTFS /dev/sdb2 5636096 5637503 1408 704K 1 FAT12
so the total size of the remaining persistent partition should be less than (N - 3) GB, where N is the size of the jump drive.
Now we create the partition. Note the du -bcm
command is just to get the size of the .iso file. Also note we specify where the partition should end with "end". This hsould be the size of the USB drive.
root@kali:~# end=7gb root@kali:~# read start _ < <(du -bcm kali-linux-2017.3-amd64.iso | tail -1); echo $start; parted /dev/sdb mkpart primary $start $end 2766 Warning: You requested a partition from 2766MB to 63.0GB (sectors 5402343..123046875). The closest location we can manage is 63.2GB to 63.2GB (sectors 123476563..123476563). Is this still acceptable to you? Yes/No? yes Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? Ignore Information: You may need to update /etc/fstab.
After
Here is what the disks look like after. There is a new /dev/sdb3
partition:
root@jupiter:/home/charles# fdisk -l Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0xd228527c Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 718847 716800 350M 7 HPFS/NTFS/exFAT /dev/sda2 718848 230348799 229629952 109.5G 7 HPFS/NTFS/exFAT /dev/sda3 457674752 488394751 30720000 14.7G 27 Hidden NTFS WinRE /dev/sda4 230350846 457674751 227323906 108.4G 5 Extended /dev/sda5 448380928 457674751 9293824 4.4G 82 Linux swap / Solaris /dev/sda6 230350848 448380927 218030080 104G 83 Linux Partition 4 does not start on physical sector boundary. Partition table entries are not in disk order. Disk /dev/sdb: 58.9 GiB, 63229132800 bytes, 123494400 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x8312dfc0 Device Boot Start End Sectors Size Id Type /dev/sdb1 * 64 5636095 5636032 2.7G 17 Hidden HPFS/NTFS /dev/sdb2 5636096 5637503 1408 704K 1 FAT12 /dev/sdb3 5637504 123476562 117839059 56.2G 83 Linux /dev/sdb4 123476563 123476563 1 512B 83 Linux
Make Filesystem
Now make a filesystem, and label it what you will (here, persistence):
mkfs.ext3 -L persistence /dev/sdb3 e2label /dev/sdb3 persistence
Mount Point
Last step is to create a mount point for the persistent partition. Then mount the partition, create a persistence config file in the partition, and unmount it.
root@kali:~# mkdir -p /mnt/usbdrive root@kali:~# mount /dev/sdb3 /mnt/usbdrive root@kali:~# echo "/ union" > /mnt/usbdrive/persistence.conf root@kali:~# umount /dev/sdb3
Now when you reboot and run from the USB drive, select the option to start a Live Persistent Kali instance.
Flags