小提示:本文使用的操作系統為Linux,所有命令都在 root 用戶下執(zhí)行
在計算機硬件越來越NB的時代下松捉,把Kali安裝到USB中對我們來講然意義并不是太大,那為什么還要介紹Kali的U盤安裝方法呢馆里?
- 便攜
- 從USB啟動Kali完全不影響主機的操作系統(虛擬機運行在宿主機上隘世,總有種不安全的感覺)
以上純屬個人觀點
1、材料準備
- Kail Linx 鏡像鸠踪,Kali Linux 官方下載地址 丙者。
- 一個容量為
8GB
的U盤(建議U盤大小為16GB以上,8GU盤太小营密,我這里使用8GB容量U盤只是出于演示目的) - 一臺安裝了Linux操作系統的主機(我這里使用的Debian9)
準備Kali鏡像:這是我所下載的Kali鏡像
準備U盤:
a. 插入U盤械媒,確認設備名稱以及分區(qū)
使用以下命令查看:
fdisk -l
由上面可以看出,目前我的系統有三個磁盤:
- 一個465.8G评汰,設備名稱為
sda
纷捞,路徑是/dev/sda
(這是我本機的系統盤) - 一個111.8G,設備名稱為
sdb
被去,路徑是/dev/sdb
(這是我額外掛載的用于存儲家目錄數據的磁盤) - 一個7.5G主儡,設備名稱為
sdc
,路徑是/dev/sdc
(這就是我們剛剛插入的8GU盤)
現在我們不管另外兩個磁盤惨缆,來看下U盤糜值,可以看到,目前我的U盤上有三個分區(qū)
/dev/sdc1
/dev/sdc2
/dev/sdc3
b. 清除分區(qū)(如果你的U盤沒有分區(qū)踪央,那你可以直接跳到下一步)
以下是分區(qū)清除過程
# 進入U盤(操作U盤)
root@c5:/home/code5# fdisk /dev/sdc
Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
# 輸入指令 d 臀玄,表示刪除分區(qū)
Command (m for help): d
# 輸入3 表示刪除分區(qū)3,也就是 /dev/sdc3 這個分區(qū)
Partition number (1-3, default 3): 3
Partition 3 has been deleted.
# 刪除分區(qū) 2
Command (m for help): d
Partition number (1,2, default 2): 2
Partition 2 has been deleted.
# 刪除分區(qū) 1畅蹂,由于上面刪除了兩個分區(qū)健无,U盤中只剩下一個分區(qū),所以不用選擇分區(qū)號液斜,fdisk會直接刪除分區(qū)1
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
# 寫入對U盤的修改
Command (m for help): w
再次查看分區(qū)
fdisk -l
從上面可以看到累贤,我們的U盤已經沒有任何分區(qū)了
所以我們現在擁有了一個沒有任何分區(qū)的純凈U盤
2、制作啟動盤
現在我們的Kali鏡像以及純凈U盤準備好了少漆,開始制作kali的啟動盤臼膏。
要制作Kali的啟動盤很簡單,使用dd命令即可
# 把 kali 鏡像寫入到我們的U盤中
dd if=./kali-linux-2019.1a-amd64.iso of=/dev/sdc bs=1M
# if(input file) : 輸入
# of(output file): 輸出
# bs(bytes) : 輸入/輸出塊大小
寫入完成后示损,你U盤會多出兩個分區(qū)渗磅,一個是引導分區(qū),一個是Kali的系統分區(qū)。
所以始鱼,你的U盤看起來應該是這樣的
使用 dd 命令制作Kali啟動盤后就是可直接使用的 Live 系統了仔掸,插上到USB中,把電腦設置為USB啟動即可使用医清。
3起暮、為啟動盤做持久化處理
第二步中我們已經把Kali的啟動盤制作好了,但還不能持久化存儲數據会烙,一旦重啟负懦,你對Kali的所有修改都會復原,所以我們要對啟動盤做一些持久化的處理柏腻,讓其可以存儲我們的修改和數據纸厉。
做持久化處理說白了就是在啟動盤中:劃分存儲分區(qū),配置存儲分區(qū)葫盼,用于存儲數據残腌。
所以,我們先使用 parted命令 在U盤中新建一個分區(qū)贫导,以下是新建分區(qū)步驟:
# 進入U盤(操作U盤)
root@c5:/home/code5# parted /dev/sdc
GNU Parted 3.2
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
(parted)
# 使用print指令查U盤所有分區(qū)
(parted) print
Model: Generic Flash Disk (scsi)
Disk /dev/sdc: 8053MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: s
# 未劃分前有兩個分區(qū)
Number Start End Size Type File system Flags
1 32.8kB 3483MB 3483MB primary boot, hidden
2 3483MB 3484MB 721kB primary
# 把剩余空間劃分為存儲分區(qū)
# 3484: 第二個分區(qū)的起點
# 8053: U盤總大小
(parted) mkpart primary 3484 8053
(parted) print
Model: Generic Flash Disk (scsi)
Disk /dev/sdc: 8053MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
# 劃分存儲分區(qū)后
Number Start End Size Type File system Flags
1 32.8kB 3483MB 3483MB primary boot, hidden
2 3483MB 3484MB 721kB primary
3 3484MB 8053MB 4569MB primary lba
# 退出 parted
(parted) quit
Information: You may need to update /etc/fstab.
root@c5:/home/code5#
分區(qū)劃分好了,向分區(qū)寫入 ext3 文件系統孩灯, 并命名為 persistence(這一步很重要闺金!這一步很重要!這一步很重要7宓怠)
mkfs.ext3 -L persistence /dev/sdc3
寫入文件系統后败匹,為存儲分區(qū)分配一個名為 persistence 的卷標(這一步很重要!這一步很重要讥巡!這一步很重要O颇丁)
e2label /dev/sdc3 persistence
現在你可以從U盤啟動你的Kali,并在Kali的設置中把語言改為中文欢顷,重啟Kali槽棍。
重啟后你會發(fā)現,語言是英文而不是我們重啟前所設置的中文抬驴,這說明我們的Kali啟動盤還沒有實現數據的持久化存儲炼七。
那是因為我們還未配置我們的存儲分區(qū)。
現在布持,讓我們重新插入U盤豌拙。
掛載我們的存儲分區(qū)(因為我們要向存儲分區(qū)寫入配置文件)
# 在掛載目錄下新建 my_usb 目錄用于掛載我們的存儲分區(qū)
mkdir -p /mnt/my_usb
# 掛載存儲分區(qū)到 /mnt/my_usb
mount /dev/sdc3 /mnt/my_usb
寫入配置文件
# 在存儲分區(qū)創(chuàng)建配置文件 persistence.conf 并寫入內容: / union
echo "/ union" > /mnt/my_usb/persistence.conf
卸載存儲分區(qū)
umount /dev/sdc3
持久化的處理到這里已經結束了,現在题暖!你可以彈出你的U盤按傅,再次嘗試修改Kali的使用語言 <*_*>
關于啟動選項問題
在啟動過程中你會發(fā)現Kali給出了許多個啟動選項其中關于 持久化 的選項有兩個
- Live system (persistence, check kali.org/prst)
- Live system (encrypted persistence, check kali.org/prst)
Live system (persistence, check kali.org/prst)
:這個選項用于啟動可持久化的Kali
Live system (encrypted persistence, check kali.org/prst)
:這個選項用于啟動可持久化的加密kali(也就是把存儲分區(qū)加密后的kali)捉超,關于如何制作加密Kali,請看Kali官方教程逞敷,這里不再贅述狂秦。
什么灌侣,你不想看官方教程推捐,那我在這里把命令簡單的復制并解釋一下下
# 首先把你的U盤搞成純凈U盤
# 假設你的U盤設備為 /dev/sdc
# 假設你使用的Kali鏡像為 kali.ios
### 把鏡像寫入到到U盤,得到兩個分區(qū) /dev/sdc1 /dev/sdc2
dd if=kali.iso of=/dev/sdb bs=1M
### 劃分存儲分區(qū) /dev/sdc3
# 選擇操作的設備
parted /dev/sdc
#劃分一個 start~end 大小的分區(qū),根據你的U盤大小來設置
mkpart primary start end
# 退出 parted
quit
### 加密存儲分區(qū) /dev/sdb3
# LUKS加密 存儲分區(qū) /dev/sdc3
cryptsetup --verbose --verify-passphrase luksFormat /dev/sdc3
# 映射 /dev/sdb3 存儲分區(qū)為 my_sub
cryptsetup luksOpen /dev/sdc3 my_usb
# 向分區(qū)寫入 ext3 文件系統
mkfs.ext3 /dev/mapper/my_usb
# 為存儲分區(qū)分配卷標 persistence
e2label /dev/mapper/my_usb persistence
### 寫入配置文件
# 創(chuàng)建掛載目錄
mkdir -p /mnt/my_usb
# 掛載存取分區(qū)到 /mnt/my_usb
mount /dev/mapper/my_usb /mnt/my_usb
# 向存儲分區(qū)寫入配置文件 persistence.conf 侧啼,內容為:/ union
echo "/ union" > /mnt/my_usb/persistence.conf
# 卸載存儲分區(qū)
umount /dev/mapper/my_usb
# 關閉映射
cryptsetup luksClose /dev/mapper/my_usb
其實制作加密版的可持久化Kali只是多了一個 LUKS加密 的步驟牛柒,和普通的可持久Kali的制作差不多。
后語
后語痊乾?沒想好皮壁,下回補上