如何將你的 Linux 主目錄移動到另一個驅動器
已發表: 2022-01-29想要將您的 Linux 主文件夾移動到另一個驅動器? 這是一個簡單而逐步的方法,它應該適用於任何發行版。 移動您的主文件夾意味著您可以重新安裝 Linux,而不必擔心您的個人文件。
為什麼要將您的主文件夾分開?
如果您要設置新機器或向現有機器添加硬盤驅動器,您可能希望將主目錄放在與默認位置不同的驅動器上。
現代個人計算機越來越流行的配置是使用中型固態驅動器 (SSD) 來保存您的操作系統,並使用更大的固態混合驅動器 (SSHD) 或傳統硬盤驅動器 (HD) 作為數據的主要存儲。 或者,您的系統中可能只有一個傳統硬盤驅動器,並且您添加了一個新的 HD 以增加存儲空間。 無論您出於何種原因,這裡都是移動您的主目錄的簡單且一目了然的操作。
順便說一句,如果您從頭開始安裝 Linux 系統,您可能會在 Linux 發行版的安裝程序中看到創建單獨主目錄的選項。 通常,您只需要進入分區選項,創建一個單獨的分區,然後將其掛載到“/home”。 但是,如果您已經安裝了 Linux 發行版,則可以使用這些說明將當前主目錄移動到新位置,而不會丟失任何內容或重新安裝操作系統。
現在,在我們開始之前,去進行備份。
相關:如何使用 rsync 備份你的 Linux 系統
識別驅動器
如果您剛剛將驅動器安裝到 Linux 計算機上,或者將 Linux 安裝到新的多驅動器計算機中的一個驅動器上,然後重新啟動,則幾乎沒有證據表明新驅動器存在。
fdisk
命令將為我們列出驅動器及其分區。
須藤 fdisk -l
滾動輸出,直到您識別出新驅動器。 第一個驅動器名為/dev/sda
,第二個驅動器名為 /dev /dev/sdb
,依此類推,最後一個字母每次都增加。 因此/dev/sde
將是系統中的第五個硬盤驅動器。
在此示例中,新驅動器是要安裝到系統中的第二個驅動器。 所以我們需要為/dev/sdb
尋找一個條目。
/dev/sdb
在上面突出顯示。 您會注意到它沒有描述分區的行。 這是一個全新的驅動器,所以它還沒有。 我們需要創建分區。 我們可以使用fdisk
來做到這一點。 如果您的硬盤驅動器不是/dev/sdb
,請確保在命令中將/dev/sdb
替換為新硬盤驅動器的實際驅動器標識符。
須藤 fdisk /dev/sdb
當fdisk
提示您輸入命令時,請按字母p
。 這將打印硬盤驅動器的分區表。 我們知道它不會有一個,但我們得到了一些關於驅動器的有用信息。 它給了我們一個很好的機會來確保我們要為其創建分區的驅動器是我們打算使用的驅動器。
它告訴我們該驅動器是 1TB 驅動器,這與我們對這台測試機的預期相符,因此我們將繼續。
創建分區
按字母n
表示新分區,然後按p
表示主分區。 當您被要求輸入分區號時,請按數字1
。
我們將為整個磁盤創建一個分區,因此當提示輸入第一個扇區時,我們可以按 Enter 接受默認值。 然後將提示您輸入最後一個扇區,Enter 將接受默認值。
雖然fdisk
確認它已經創建了一個 1TB 的 Linux 分區,即分區號 1,但硬盤驅動器上還沒有任何變化。 在您向fdisk
發出將更改寫入驅動器的命令之前,驅動器不會受到影響。 一旦您確定對我們的選擇感到滿意,請按字母w
將更改寫入驅動器。
分區已寫入/dev/sdb
。 讓我們看看剛剛發生了什麼。 我們將在/dev/sdb
上再次使用fdisk
。
須藤 fdisk /dev/sdb
按字母p
打印該分區表,您會看到現在為驅動器列出了一個分區。 因為它是該驅動器上的第一個分區,所以它被稱為/dev/sdb1
。 第二個分區將被稱為/dev/sdb2
,依此類推。
我們不想對分區進行任何更改,所以按字母q
退出。
在分區上創建文件系統
我們需要在分區上創建一個文件系統。 這可以通過mkfs
命令輕鬆實現。 請注意,您必須在命令中包含分區號。 小心輸入/dev/sdb1
(分區)而不是/dev/sdb
(驅動器)。
須藤 mkfs -t ext4 /dev/sdb1
將為您創建文件系統,您將返回到命令提示符。
安裝新驅動器
要使用新驅動器,我們必須將其上的分區掛載到文件系統中的掛載點。 實際上,準確地說,我們既不掛載驅動器也不是掛載分區,而是掛載文件系統到分區上,方法是將其嫁接到系統的文件系統樹上。
/mnt
點和任何地方一樣好。 它只是一個臨時掛載點,允許我們將數據複製到新驅動器。 我們將使用mount
命令將文件系統掛載到/dev/sdb
的第一個分區上的/mnt
。
須藤掛載/dev/sdb1 /mnt
如果一切順利,您將返回到命令行且沒有錯誤消息。 讓我們看看是否可以將目錄更改為新掛載的文件系統。
光盤 /mnt
我們可以。 讓我們看看這裡有什麼。
ls -ahl
我們在我們的新文件系統中。 不需要默認的“lost+found”目錄,因此我們可以將其刪除。
sudo rm -rf 丟失+找到
複製您的主文件夾
我們需要將舊主目錄中的所有內容複製到新掛載的文件系統中。 使用r
(遞歸)和p
(保留)選項將確保複製所有子目錄並保留文件所有權、權限和其他屬性。
sudo cp -rp /home/* /mnt
複製完成後,使用ls
環顧四周並驗證您的數據是否在新文件系統中的預期位置。 換句話說,如果/mnt
是您的主目錄,那麼所有內容都存在且正確嗎?
ls
戴夫
您可能希望比我們在本文研究的測試機器上更徹底。 作為安全網,我們將重命名並保留您的舊/home
目錄,直到您確信可以安全刪除它為止。
sudo mv /home /home.orig
我們將創建一個新的空主目錄。
須藤 mkdir /home
我們將使用新的空主目錄作為新硬盤驅動器上文件系統的掛載點。 我們需要從/mnt
卸載它並在/home
上重新安裝它。 請注意,命令umount
在“u”之後沒有“n”。
但首先,我們將切換到根目錄(使用cd /
)以確保我們不在將包含在掛載或卸載位置的目錄中。
光盤 /
sudo umount /dev/sdb1
sudo mount /dev/sdb1 /home/
相關: Linux 目錄結構,解釋
測試您的新主目錄
讓我們看看/dev/sdb1
分區的屬性現在是什麼:
df /dev/sdb1
我們會看到文件系統的名稱、分區的大小以及分區的已用和可用空間,重要的是,它的掛載位置。 它現在是我們的/home
目錄。 這意味著我們應該能夠像舊的/home
目錄一樣引用它。
如果我們移動到文件系統中的某個任意點,我們應該能夠使用~
波浪號快捷方式切換回/home
。
光盤 /
光盤~
密碼
ls
光盤 /home
ls
光盤戴夫
ls
ls -a
我們可以使用顯式命令和使用~
快捷方式在文件系統中來回移動到/home
。 我們期望的文件夾、文件和點文件都存在。 這一切看起來都很好。
如果缺少任何內容,我們可以將其從/home.orig
目錄中復制出來,我們仍然可以在文件系統的根目錄中訪問該目錄。 但這一切看起來都很好。
現在我們需要在每次啟動計算機時自動掛載/dev/sdb1
。
編輯 fstab
“fstab”文件包含系統引導時將要掛載的文件系統的描述。 在對其進行任何更改之前,我們將對其進行備份,以便在出現問題時可以返回。
sudo cp /etc/fstab /etc/fstab.orig
現在我們可以編輯 fstab 文件了。 使用您最喜歡的編輯器,我們正在使用gedit
。 任何文本編輯器都可以。
須藤 gedit /etc/fstab
您必須在文件底部添加一行來掛載我們的新/home
目錄。 如果您的驅動器和分區標識符與本示例中使用的不同,請將其替換為此處顯示的/dev/sdb1
。
- 在行首鍵入分區的名稱,然後按 Tab。
- 鍵入安裝點
/home
,然後按 Tab。 - 鍵入文件系統描述
ext4
,然後按 Tab。 - 鍵入安裝選項的
defaults
,然後按 Tab。 - 為文件系統轉儲選項鍵入數字
0
,然後按 Tab。 - 為文件系統檢查選項鍵入數字
0
。
保存 fstab 文件。
重新啟動系統
我們需要重新啟動以驗證一切都按計劃進行,並且您已無縫連接到新的/home
目錄。
如果沒有,您仍然擁有原始/home
目錄和 fstab 文件的安全網,如果需要,可以恢復這些文件。 由於我們採取了預防措施(複製/home
目錄和 fstab 文件),您可以輕鬆地將系統恢復到開始之前的狀態。
sudo 現在重新啟動
相關:如何使用命令行重啟或關閉 Linux
最終檢查
當你的系統重新啟動時,讓我們檢查一下你的/home
目錄是否真的在你的新硬盤上,並且你的系統沒有以某種方式(奇蹟般地)恢復到使用舊的/home
目錄。
df /dev/sdb1
太好了,它安裝在/home
上。 任務完成。
一旦您完全確定不再需要舊/home
目錄的安全副本,您可以將其刪除:
光盤 /
sudo rm -rf home.orig/
當然,如果您確實意識到某些內容沒有從舊的/home
複製到新的/home
,您將能夠從我們開始之前所做的備份中檢索它。
家,甜蜜的家
現在您已將/home
目錄與操作系統分區的其餘部分分開,您可以重新安裝操作系統,並且您的數據不會受到影響。 您所要做的就是編輯 fstab 文件以將您的第二個驅動器安裝在/home
上。
因為所有的點文件都在/home
目錄中,所以當您啟動各種應用程序時,它們會找到您的所有設置、首選項和數據。
它消除了重新安裝的痛苦並消除了升級的風險。
Linux 命令 | ||
文件 | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev ·查看·字符串·類型·重命名· zip ·解壓縮· mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm | |
流程 | 別名· screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat ·超時·牆·是·殺死·睡眠· sudo · su ·時間· groupadd · usermod ·組· lshw ·關機·重新啟動·停止·關機· passwd · lscpu · crontab ·日期· bg · fg | |
聯網 | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
相關:適合開發人員和愛好者的最佳 Linux 筆記本電腦