2015年7月11日 星期六

RaspBerry pi 2 + 3.5" TFT + Kali Linux 移動式滲透測試平台(三) - 空間擴展篇

官方的 Kali 映象檔寫到 microSD 卡只會畫出約 3G 的空間,基本操作雖然足夠,但隨著之後的操作,最後會發生空間不足的現像,我當初是採用 16GB 的記憶體,剩下的 12GB 徒然浪費,本篇將說明如何把被保留的空間擴展到系統中:
/# df -h
FilesystemSizeUsed AvailUse%Mounted on
rootfs2.9G2.9G 0G100%/
/dev/root2.9G2.9G0G100%/
devtmpfs460M 0460M0%/dev
tmpfs93M556K93M1%/run
tmpfs5.0M05.0M0%/run/lock
tmpfs186M0186M0%/run/shm
cgroup12K012K0%/sys/fs/cgroup
cgmfs100K0100K0%/run/cgmanager/fs
tmpfs93M093M0%/run/user/0

/# du -sh *
7.5Mbin
4.0Kboot
0dev
6.3Metc
4.0Khome
331Mlib
16Klost+found
(... 略 ...)
203Mroot
560Krun
5.9Msbin
4.0Ksrv
0sys
1.5Gusr
720Mvar
12Ktmp
從上面兩組清單可以看到 rootfs 的空間已用盡,而佔用最多空間的目錄是 usr 及 var ,所以要將 usr 及 var 分別移到新的分割區,以便謄出原來的系統空間。
首先用 fdisk 將未用的12GB空間分割成兩個邏輯磁區
/# fdisk /dev/mmcblk0
Command (m for help): n                  # 建立新分割區
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): e                         # 選擇 e
Partition number (3,4, default 3): 3    # 選擇 4
First sector (6144000-31291391, default 6144000): (直接按ENTER)
Last sector, +sectors or +size{K,M,G,T,P} (6144000-31291391, default 31291391):(直接按ENTER)

Created a new partition 3 of type 'Extended' and of size 12 GiB.

Command (m for help): n              # 建立新分割區,從前一步驟的extended分割區分出第一組邏輯分割
All space for primary partitions is in use.
Adding logical partition 5              # 這裡指明邏輯分割的編號是 5
First sector (6146048-31291391, default 6146048):(直接按ENTER)
Last sector, +sectors or +size{K,M,G,T,P} (6146048-31291391, default 31291391): +6G     # 指定邏輯分割區的大小,我設為 6GB

Created a new partition 5 of type 'Linux' and of size 6 GiB.

Command (m for help): n                # 再建立第二組邏輯分割區
All space for primary partitions is in use.
Adding logical partition 6                # 這裡指明邏輯分割的編號是 6
First sector (18731008-31291391, default 18731008):(直接按ENTER)
Last sector, +sectors or +size{K,M,G,T,P} (18731008-31291391, default 31291391):(直接按ENTER)

Created a new partition 6 of type 'Linux' and of size 6 GiB.

Command (m for help): w               # 一定要用 w 寫到分割表,設定才會生效

/# fdisk -l /dev/mmcblk0                 # 查看分割結果

DeviceBootStartEndSectorsSizeIdType
/dev/mmcblk0p1 112500012500061McW95 FAT32 (LBA)
/dev/mmcblk0p2 125001614399960189992.9G83 Linux
/dev/mmcblk0p3 6144000312913912514739212G5Extended
/dev/mmcblk0p5 6146048 18728959125829126G 83Linux
/dev/mmcblk0p6 18731008 31291391125603846G83Linux
一定要重新開機才能進行接下來的操作
接著對剛剛建立的分割區進行格式化:
/# mkfs -t ext4 /dev/mmcblk0p5
(...訊息省略...)
Creating journal (32768 blocks):(ENTER)
done
Writing superblocks and filesystem accounting information: done      # 這裡要花一小段時間

/# mkfs -t ext3 /dev/mmcblk0p6        # 對 mmcblk0p6 格式化,重複上述步驟
(...步驟同上一項,此省略...)

/# ls -l /dev/disk/by-uuid                    # 查看各個分割區的 UUID
total 0
lrwxrwxrwx 1 root root 15 Jul 10 12:32 1ede04b7-0c5f-40ce-885a-92ad887387e2 -> ../../mmcblk0p2
lrwxrwxrwx 1 root root 15 Jul 10 12:32 C95D-B9D2 -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 15 Jul 10 12:32 bd9c0971-c72e-4fae-b41f-e2c0f58e9be7 -> ../../mmcblk0p5
lrwxrwxrwx 1 root root 15 Jul 10 12:32 cbcccc60-9825-440a-9667-919a7bb6f7af -> ../../mmcblk0p6
將現有的 usr 及 var 分別複製到  /dev/mmcblk0p5 及 /dev/mmcblk0p6
/# mount /dev/mmcblk0p5 /mnt
/# cp -a /usr/* /mnt
/# umount /mnt
/# mount /dev/mmcblk0p6 /mnt
/# cp -a /var/* /mnt
編輯 /etc/fstab 讓分割區在開機時分別掛載到 /usr 及 /var
# UNCONFIGURED FSTAB FOR BASE SYSTEM
UUID=bd9c0971-c72e-4fae-b41f-e2c0f58e9be7      /usr      ext3 defaults      0      2
UUID=cbcccc60-9825-440a-9667-919a7bb6f7af      /var      ext3 defaults      0      2
請重新開機,讓設定生效。接著要將原來的 usr 及 var 的內容刪除,以便謄出空間。
/# mount --bind / /mnt           # 一定要用 --bind 參數,將根目錄掛到 /mnt
/# rm -rf /mnt/usr
/# rm -rf /mnt/var
/# umount /mnt

/# df -h
FilesystemSizeUsedAvailUse% Mounted on
rootfs2.9G662M2.1G25% /
/dev/root2.9G662M2.1G25% /
devtmpfs460M0460M0% /dev
tmpfs93M556K93M1% /run
tmpfs5.0M05.0M0%/run/lock
tmpfs186M0186M0%/run/shm
/dev/mmcblk0p55.8G1.5G4.1G 27% /usr
/dev/mmcblk0p65.8G768M4.8G14%/var
cgroup12K012K0%/sys/fs/cgroup
cgmfs100K0100K0%/run/cgmanager/fs
tmpfs93M093M0%/run/user/0
從上面的清單可以看到 /usr 及 /var 已轉移到新建的兩個分割區上,而原來空間耗盡的 rootfs ,現在變成只使用 25% 。
其實是我在安裝 gdm3 時,因為空間不足而無法完成安裝,才發現原來的空間這麼小!
< 上一篇> RaspBerry pi 2 + 3.5" TFT + Kali Linux 移動式滲透測試平台(二) - 基本資源篇
< 下一篇> RaspBerry pi 2 + 3.5" TFT + Kali Linux 移動式滲透測試平台(四) - 螢幕安裝篇

沒有留言:

張貼留言