0x00
通過ultraiso等軟件刻錄到U盤的方法其實是以live方式運行的,這樣在系統中做的修改是保存不了的,固做此篇文章。
0x01
准備工作
1.USB3.0 U盤 不小於32G(推薦一款U盤:CZ800)
2.VMware
3.在服務中開啟VMware的所有服務,否則安裝會出問題
4.Kali linux 64位最新版(下載鏈接:https://www.kali.org/downloads/)
0x02
安裝系統
打開VMware虛擬機,新建虛擬機。
1 .兼容性選擇默認的Workstation 12.0就可以。
2. 安裝來源選擇第二項,然后瀏覽下載的kali ISO鏡像文件。這里可能會提示無法檢測操作系統,沒關系。點擊下一步然后選擇linux Debian 8.0x 64位就可以。
3. 名字隨便起一個
4 .內存根據情況調一下,一般1-2G左右就可以
5 .后面的一路點擊下一步就可以,會自動創建一個20G的虛擬硬盤。
(打開虛擬機設置,看一下USB控制器里面用的是3.0還是2.0接口,要和U盤保持一致。如果U盤是3.0且插在3.0接口上,這里就選擇USB 3.0,否則選擇2.0。如果這里選擇不正確就會導致后面識別不到U盤。)
6 .開啟虛擬機,進入安裝界面后選擇第三項,Graphical Install,圖像化安裝
7 .然后選擇語言,中文英文都可以,但是light版一定要選擇英文,因為light版沒有自帶中文字體,會有亂碼。
8 .然后選擇區域,鍵盤,默認就可以
9 .然后會探測安裝光盤,這是VMware的虛擬DVD
10 .如果已經連接到網絡,會自動配置網絡。如果提示網絡配置失敗,一般是VMware的網絡服務沒有開啟,任務管理器定位到服務,把VM相關的VMnetDHCP,VMUSBArbService,VMware NAT Service,VMwareHostId等全部開啟。也可能是虛擬機設置里面USB控制器選擇的USB版本和U盤插 入的接口不一致。如果USB控制器選擇2.0(默認),就要把U盤插在2.0接口。
11. 然后要求填主機名稱和域名稱,隨意填就可以
12. 設置root賬戶密碼,這個必須記住
13.這里把已經格式化位NTFS的U盤插入到電腦(虛擬機選擇的是USB2.0控制器就插到USB2.0接口,否則3.0接口),然后看VMware右下角有沒有U盤,可能是USB圖標,也可能是硬盤圖標,找到了就點擊,然后選擇連接。
如果沒有找到,那就是Vmware的VMUSBArbService服務沒有開啟,在服務中開啟,然后關閉虛擬機,重新再來一遍。
U盤連接到虛擬機后,在安裝向導選擇使用整個磁盤。
然后點擊繼續,現在應該會列出來兩個磁盤,一個是默認的20G虛擬磁盤,一個是31G的U盤。點擊31G的U盤。
如果只有20G的虛擬磁盤,那就看看U盤是不是插在2.0接口上,如果插在3.0接口會識別不出來,不知道是不是驅動的原因。U盤插在2.0接口后,點擊返回,然后在主菜單中選擇“磁盤分區”,繼續。
14. 選擇將所有文件放在同一個分區
15. 選擇結束修改,安裝系統到磁盤,繼續,然后等待大約1小時。
16. 安裝過程會提示是否安裝網絡鏡像。這里選是。其實就是通過apt-get下載軟件,如果選擇了否,也可以在安裝好之后手動配置源:/etc/apt/sources.list
17. 詢問是否將grub啟動引導安裝在主引導記錄(MBR)時,選擇【是】,然后在硬盤設備列表中選擇U盤。
18. 等待結束安裝進程,然后虛擬機會重啟,kali安裝在了U盤,虛擬機不會從U盤啟動,所以會提示找不到操作系統,這個沒事。
19. 制作完成后,windows會提示無法識別U盤。詢問是否格式化,這是因為U盤這里已經是ext4格式了,windows不支持,識別不了是正常的,點擊取消就行了,不要格式化。
0x03
kali初始化
1.重啟電腦,在bios中選擇U盤啟動。
2.(initramfs)啟動錯誤
在grub引導界面有兩個啟動選項,第一個是kali GNU/linux,第二個是Advanced options for kali GNU/Linux.
直接選擇第一個進入后,會啟動失敗,提示“Target filesystem doesn’t have requested /sbin/init.”
並進入一個(initramfs)的命令行界面。這是因為硬盤選擇不對。
【 linux中硬盤名稱分配是按照/dev/sda, /dev/sdb, /dev/sdc的序號分配的,有幾個磁盤就分配到對應字母,
磁盤序號分配的順序有三個原則:一是磁盤驅動程序的加載;二是主機PCI插槽的監測;三是磁盤本身的監測,先來的當然是a,以此類推。
這樣在重啟或某些磁盤熱拔插的情況下有可能導致序號發生變化,無法啟動系統。解決辦法是通過uuid來標記磁盤,而不是通過/dev/sdc1之類,
所以不管有沒有發生啟動錯誤,都要替換為uuid(按照下面的永久生效方法操作即可),否則如果U盤插到一個有多個硬盤的電腦,序號變了,kali就無法啟動了。】
【解決辦法】
在這模式下可以輸入命令:blkid 查看所列舉出的磁盤 找到你的U盤系統 TYPE=”ext4”的區 記下 /dev/sdc1 這個名字。(每個人的不一樣 有的可能是sdb1 下文用sdc1)。
然后重啟,再次進入grub啟動選擇界面,選擇第一項,按e進入編輯模式,找到有“初始化內存盤….”字樣的地方,他的上一行linux后面有…………./dev/sda1 ro 的地方(可能被白邊擋着看不清,我的在倒數第三行) 改成 /dev/sdc1 rw ,ro ,按F10 重新引導啟動。
如果上面操作無誤 就可以成功進入系統。用戶名:root 密碼 :你安裝時候設置的。 但是上面這種設置方法只是臨時的每次都要修改。
【永久生效操作方法,有沒有錯誤都要執行下】:
進入系統之后 打開終端,輸入
update-grub
#更新grub.cfg,這里必須執行,這里會重新掃描啟動項,生成啟動引導,以uuid方式標記硬盤而不是/dev/sdc1方式,所以拿到別的電腦上啟動kali也不會出現啟動錯誤。
leafpad /boot/grub/grub.cfg
看看linux是否掛載在sdc1(每個人不一樣)下。(這里 可能顯示的不是 sdc1 是sdc1的UUID 可以用blkid命令查看一下。)
sync
#確保寫入
reboot
#重啟系統
3.更新源
leafpad /etc/apt/sources.list
#阿里雲源
deb http://mirrors.aliyun.com/kali sana main non-free contrib
deb http://mirrors.aliyun.com/kali-security/ sana/updates main contrib non-free
deb-src http://mirrors.aliyun.com/kali-security/ sana/updates main contrib non-free
增加后保存,然后執行
apt-get update
結束。