linux(雙系統(tǒng)電腦)縮小根目錄分區(qū)、給/home單獨分區(qū)的簡單方法?
電腦配置:x86_64,有1T的固態(tài)硬盤。Windows 10+kali linux雙系統(tǒng)電腦。
$ uname -r
6.1.0-kali5-amd64
在操作之前有 300G 作為一整個根目錄安裝 kali,文件系統(tǒng) 為 ext4,沒有給 /home 單獨分區(qū)?,F(xiàn)在整個根目錄大約使用了 36G,其中 /home 大約有15G;希望縮小根目錄到 100G,產(chǎn)生的新的200G空間,其中 100G 給 /home 單獨分區(qū),剩余的100G留作備用。
網(wǎng)上查到的教程,命令行方式大多數(shù)看著感覺有點嚇人,不怎么靠譜,而 gparted 無法直接縮小根分區(qū)大小。這里分享一種簡單的、圖形化的方法,看起來不是那么嚇人。
給 /home 單獨分區(qū)是為了便于搗鼓操作系統(tǒng),如果操作系統(tǒng)寄了,重裝系統(tǒng)也能保證家目錄下的數(shù)據(jù)不丟失。未來也可以和其他多個 linux 共享 /home 分區(qū)。
基礎(chǔ)知識
使用 gparted 管理磁盤空間,這是linux的一個圖形化的磁盤管理工具。界面和 windows 的磁盤管理器有點類似,功能也相似但是更強大(畢竟windows的磁盤管理器沒法操作 ext4)。但是無法直接對當(dāng)前操作系統(tǒng)的根目錄縮減大小,我猜是因為工作的時候沒法直接動。因此我猜測可以使用別的操作系統(tǒng)
UUID 是磁盤分區(qū)的編號,linux啟動的時候需要用到該內(nèi)容。在本人的電腦里,/etc/fstab 和 /boot/grub/grub.cfg 里標(biāo)志了系統(tǒng)啟動的時候需要使用正確的 UUID 才能掛載根目錄。修改分區(qū)可能會對對應(yīng)分區(qū)的 UUID 產(chǎn)生影響,因此需要修復(fù)上述的兩個文件。
live cd 是 linux 的一種ram os,意思是操作系統(tǒng)運行的時候,整個操作系統(tǒng)的文件存儲在內(nèi)存里,不需要修改硬盤數(shù)據(jù)。一般用于修復(fù)受損的 linux 操作系統(tǒng)。
我的整體方案是:
- 制作 live cd 啟動盤
- 進入 live cd 系統(tǒng),修改電腦硬盤分區(qū)
- 修改系統(tǒng)文件
- 重啟操作系統(tǒng)
在操作之前需要確定根目錄安裝在哪個分區(qū),通過lsblk能夠看到。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 931.5G 0 disk
├─nvme0n1p1 259:1 0 128M 0 part
├─nvme0n1p2 259:2 0 260M 0 part /boot/efi
├─nvme0n1p3 259:3 0 188.8G 0 part /mnt/win/C
├─nvme0n1p4 259:4 0 300G 0 part /mnt/win/E
├─nvme0n1p5 259:5 0 141.3G 0 part /mnt/win/D
├─nvme0n1p6 259:6 0 1000M 0 part
├─nvme0n1p7 259:7 0 299G 0 part /
└─nvme0n1p8 259:8 0 977M 0 part [SWAP]
我的是 /dev/nvme0n1p7
,需要記住這一點。也可能是諸如 /dev/sdax的形式。
制作 live cd 啟動盤
下載 live cd 的 ISO 鏡像,不一定要與原操作系統(tǒng)相同,但是要有 gparted 工具(我不知道沒有 gparted live cd 的能不能登錄之后使用網(wǎng)絡(luò)下載,我猜應(yīng)該可以),比如 kali 的 live cd 就有。不過 kali livecd 太大,可以使用 512MB 的 GParted Livecd;GParted Livecd 功能太簡陋,可以使用作者自己制作的,大小 1.6GB。
kali live cd 下載地址(中科大源,不是官方源,從這里下載網(wǎng)速快):鏈接,根據(jù)電腦硬件,選擇 live iso
制作啟動盤,方法很多。需要找一個空白U盤制作。我使用的是ventory(官網(wǎng)鏈接),因為制作多個系統(tǒng)的啟動盤很方便,基本上就是無腦操作,占用U盤的空間就是 iso 占的空間,剩下的空間還能裝自己的東西。
可以參考這個教程,在 U 盤安裝 ventory 之后,打開U盤,把下載的 iso 拖進 U 盤就行了。
進入 live cd 系統(tǒng)
U盤插入電腦,選擇U盤啟動(這一步安裝過電腦系統(tǒng)的人應(yīng)該都很熟悉),選擇 live-cd 的 iso,一路默認(rèn)選項進入 live cd 系統(tǒng)。打開終端。
首先拍照記錄硬盤各分區(qū)的 UUID,命令是 sudo blkid | sort
:
執(zhí)行 gparted 命令,修改之前記住的 /dev/nvme0n1p7
的大小。建議留出的空間都放在后邊(也就是說,“之前的可用空間”填0,多出來的都放在之后的可用空間),因為這樣 UUID 大概率不變:
選好之后點擊調(diào)整大小,然后點擊上邊的對號執(zhí)行操作。
需要有一定的時間。
執(zhí)行 lsblk 發(fā)現(xiàn)大小已經(jīng)變了,blkid 發(fā)現(xiàn)根目錄系統(tǒng)的 UUID 沒有變化:
如果變化,那么需要掛載根目錄,進去修改 /etc/fstab 和 /boot/grub/grub.cfg ,把原來根目錄分區(qū)的 UUID 改成新的。如果像我之前那樣,調(diào)整大小之后新的分區(qū)在原有分區(qū)位置的前端,那么 UUID 應(yīng)該不變。
重啟操作系統(tǒng)并遷移 /home
重啟后發(fā)現(xiàn)能正常進入操作系統(tǒng),說明根目錄沒有問題?,F(xiàn)在需要的就是對剩余空間進行分區(qū)并掛載到 /home ,這里仍然使用 gparted
選擇未分配,右鍵新建,調(diào)整后點擊添加:
點擊上邊的對號,完成新建分區(qū)。
此時出現(xiàn)了新的 /dev/nvme0n1p9 ,這就是計劃的 /home 分區(qū)的位置。
blkid,確認(rèn)其他分區(qū)的 UUID 都沒有變化:(如果發(fā)生變化,那我也不知道怎么辦)
復(fù)制上邊的 /dev/nvme0n1p9 的 UUID 內(nèi)容。
sudo vim /etc/fstab
修改 /etc/fstab 文件,添加一行:
UUID 是上面復(fù)制的 UUID;這個會在重啟之后生效并自動掛載。
把 /home 的內(nèi)容復(fù)制進去:
$ sudo mkdir /mnt/tmp # 創(chuàng)建臨時目錄
$ sudo mount /dev/nvme0n1p9 /mnt/tmp/ # 掛載新的目錄
$ sudo rsync -av /home/* /mnt/tmp/ # 復(fù)制家目錄下的全部文件
$ umount /mnt/tmp # 關(guān)閉掛載
現(xiàn)在需要把舊的 /home 重命名,否則重啟之后掛載硬盤的 /home 會和根目錄的 /home 產(chǎn)生沖突。但是顯然在有普通用戶登錄的時候是無法這樣操作的,因為需要讀寫 /home 目錄。因此需要退出普通用戶,用 root 的純命令行解決。
首先登錄 root 用戶并退出全部普通用戶。這里我的方法是,按 ctrl+shift+F1 進入 tty1 的純命令行界面,登錄 root 用戶:
依次執(zhí)行命令:
w # 查看有哪些普通用戶。如果有命令行界面的用戶,則直接 logout 退出。
ps -e | grep -i xorg # 我是 xfce 桌面,感覺這是唯一有效退出圖形界面普通用戶的方法。
kill xxxx # 關(guān)閉上面的進程 PID 從而退出所有普通用戶
mv /home /home.back # 給 home 留出來名字,不刪除是為了做備份
mkdir /home # 新建掛載點
mount /dev/xxx /home # 把剛剛新建的 home 分區(qū)掛回去
之后按 ctrl+alt+F7 進入圖形界面,登錄普通用戶,發(fā)現(xiàn)能正常登陸。文章來源:http://www.zghlxwxcb.cn/news/detail-645710.html
重啟也能正常登陸。至此遷移完畢,可以把 /home.back 刪除。文章來源地址http://www.zghlxwxcb.cn/news/detail-645710.html
到了這里,關(guān)于linux(雙系統(tǒng)電腦)縮小根目錄分區(qū)、給/home單獨分區(qū)的簡單方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!