วิธีย้ายโฮมไดเร็กทอรี Linux ของคุณไปยังไดรฟ์อื่น
เผยแพร่แล้ว: 2022-01-29ต้องการย้ายโฮมโฟลเดอร์ Linux ของคุณไปยังไดรฟ์อื่นหรือไม่? ต่อไปนี้คือวิธีดำเนินการอย่างตรงไปตรงมาและเป็นขั้นเป็นตอนซึ่งควรใช้ได้กับการแจกจ่ายใดๆ การย้ายโฟลเดอร์เริ่มต้นหมายความว่าคุณสามารถติดตั้ง Linux ใหม่ได้และไม่ต้องกังวลกับไฟล์ส่วนตัวของคุณ
เหตุใดจึงต้องแยกโฟลเดอร์บ้านของคุณออกจากกัน
หากคุณกำลังตั้งค่าเครื่องใหม่หรือเพิ่มฮาร์ดไดรฟ์ลงในเครื่องที่มีอยู่ คุณอาจต้องการให้ไดเรกทอรีหลักของคุณอยู่บนไดรฟ์อื่นที่ไม่ใช่ตำแหน่งเริ่มต้น
การกำหนดค่าที่นิยมมากขึ้นสำหรับคอมพิวเตอร์ส่วนบุคคลสมัยใหม่คือการมี Solid State Drive (SSD) ขนาดกลางที่ถือระบบปฏิบัติการของคุณและ Solid State Hybrid Drive (SSHD) ที่ใหญ่กว่าหรือฮาร์ดไดรฟ์แบบเดิม (HD) เป็นที่จัดเก็บข้อมูลหลักของคุณ หรือคุณอาจมีฮาร์ดไดรฟ์แบบเดิมเพียงตัวเดียวในระบบ และคุณได้เพิ่ม HD ใหม่เพื่อเพิ่มพื้นที่จัดเก็บ ไม่ว่าเหตุผลของคุณจะเป็นอย่างไร การย้ายโฮมไดเร็กตอรี่ของคุณเป็นเรื่องง่ายและรวดเร็ว
อย่างไรก็ตาม หากคุณกำลังติดตั้งระบบ Linux ตั้งแต่เริ่มต้น คุณอาจเห็นตัวเลือกในการสร้างโฮมไดเร็กทอรีแยกต่างหากในตัวติดตั้งของ Linux distribution โดยทั่วไป คุณจะต้องเข้าสู่ตัวเลือกการแบ่งพาร์ติชั่น สร้างพาร์ติชั่นแยก และติดตั้งที่ “/home” แต่ถ้าคุณได้ติดตั้ง Linux distribution แล้ว คุณสามารถใช้คำแนะนำเหล่านี้เพื่อย้ายโฮมไดเร็กทอรีปัจจุบันของคุณไปยังตำแหน่งใหม่โดยไม่สูญเสียสิ่งใดๆ หรือติดตั้งระบบปฏิบัติการของคุณใหม่
ตอนนี้ ก่อนที่เราจะเริ่มต้น ไปและทำการสำรองข้อมูล
ที่เกี่ยวข้อง: วิธีสำรองข้อมูลระบบ Linux ของคุณด้วยrsync
ระบุไดรฟ์
หากคุณเพิ่งติดตั้งไดรฟ์กับคอมพิวเตอร์ Linux หรือติดตั้ง Linux กับไดรฟ์ตัวใดตัวหนึ่งในคอมพิวเตอร์หลายไดรฟ์เครื่องใหม่และรีบูต แทบไม่มีหลักฐานว่าไดรฟ์ใหม่นั้นมีอยู่ด้วยซ้ำ
คำสั่ง fdisk
จะแสดงรายการไดรฟ์และพาร์ติชั่นให้เรา
sudo fdisk -l
เลื่อนดูผลลัพธ์จนกว่าคุณจะระบุไดรฟ์ใหม่ ชื่อไดรฟ์แรก /dev/sda
ไดรฟ์ที่สองคือ /dev/sdb
เป็นต้น โดยอักษรตัวสุดท้ายจะเพิ่มขึ้นทุกครั้ง ดังนั้น /dev/sde
จะเป็นฮาร์ดไดรฟ์ตัวที่ห้าในระบบ
ในตัวอย่างนี้ ไดรฟ์ใหม่เป็นไดรฟ์ที่สองที่จะติดตั้งเข้ากับระบบ ดังนั้นเราต้องมองหารายการสำหรับ /dev/sdb
/dev/sdb
ถูกเน้นด้านบน คุณจะสังเกตเห็นว่าไม่มีบรรทัดอธิบายพาร์ติชั่นอยู่ มันเป็นไดรฟ์ใหม่เอี่ยมจึงยังไม่มี เราจำเป็นต้องสร้างพาร์ติชัน เราสามารถทำได้โดยใช้ fdisk
หากฮาร์ดไดรฟ์ของคุณไม่ใช่ /dev/sdb
ตรวจสอบให้แน่ใจว่าคุณแทนที่ /dev/sdb
ด้วยตัวระบุไดรฟ์จริงสำหรับฮาร์ดไดรฟ์ใหม่ของคุณในคำสั่ง
sudo fdisk /dev/sdb
เมื่อ fdisk
ขอให้คุณป้อนคำสั่ง ให้กดตัวอักษร p
ซึ่งจะพิมพ์ตารางพาร์ติชั่นสำหรับฮาร์ดไดรฟ์ เรารู้ว่าไม่มี แต่เราได้รับข้อมูลที่เป็นประโยชน์เกี่ยวกับไดรฟ์ มันทำให้เรามีโอกาสที่ดีที่จะทำให้แน่ใจว่าไดรฟ์ที่เราจะสร้างพาร์ติชั่นนั้นเป็นไดรฟ์ที่เราตั้งใจจะใช้งาน
มันบอกเราว่าไดรฟ์นั้นเป็นไดรฟ์ 1TB ซึ่งตรงกับที่เราคาดหวังในเครื่องทดสอบนี้ ดังนั้นเราจะดำเนินการต่อ
สร้างพาร์ติชั่น
กดตัวอักษร n
สำหรับพาร์ติชั่นใหม่ จากนั้นกด p
สำหรับพาร์ติชั่นหลัก เมื่อคุณถูกถามถึงหมายเลขพาร์ติชั่น ให้กดหมายเลข 1
เราจะสร้างพาร์ติชั่นเดียวสำหรับทั้งดิสก์ ดังนั้นเมื่อได้รับพร้อมท์สำหรับเซกเตอร์แรก เราสามารถกด Enter เพื่อยอมรับค่าเริ่มต้น จากนั้นคุณจะได้รับพร้อมท์สำหรับเซ็กเตอร์สุดท้าย และ Enter จะยอมรับค่าเริ่มต้น
แม้ว่า fdisk
จะยืนยันว่าได้สร้างพาร์ติชัน Linux ขนาด 1TB ซึ่งเป็นพาร์ติชันหมายเลข 1 แล้ว แต่ยังไม่มีอะไรเปลี่ยนแปลงในฮาร์ดไดรฟ์ จนกว่าคุณจะให้คำสั่ง fdisk
เพื่อเขียนการเปลี่ยนแปลงไปยังไดรฟ์ ไดรฟ์จะไม่ถูกแตะต้อง เมื่อคุณแน่ใจว่าคุณพอใจกับตัวเลือกของเราแล้ว ให้กดตัวอักษร w
เพื่อเขียนการเปลี่ยนแปลงลงในไดรฟ์
พาร์ติชันถูกเขียนไปยัง /dev/sdb
มาดูกันว่าเกิดอะไรขึ้น เราจะใช้ fdisk
อีกครั้งบน /dev/sdb
sudo fdisk /dev/sdb
กดตัวอักษร p
เพื่อพิมพ์ตารางพาร์ติชั่นนั้น แล้วคุณจะเห็นว่ามีพาร์ติชั่นอยู่ในรายการสำหรับไดรฟ์แล้ว เนื่องจากเป็นพาร์ติชั่นแรกบนไดรฟ์นี้ จึงถูกเรียกว่า /dev/sdb1
พาร์ติชั่นที่สองจะถูกเรียก /dev/sdb2
และอื่น ๆ
เราไม่ต้องการเปลี่ยนแปลงใดๆ กับพาร์ติชั่น ดังนั้นให้กดตัวอักษร q
เพื่อออก
สร้างระบบไฟล์บนพาร์ติชั่น
เราจำเป็นต้องสร้างระบบไฟล์บนพาร์ติชัน ทำได้โดยง่ายด้วยคำสั่ง mkfs
โปรดทราบว่าคุณต้องใส่หมายเลขพาร์ติชันในคำสั่ง โปรดใช้ความระมัดระวังในการพิมพ์ /dev/sdb1
(พาร์ติชัน) ไม่ใช่ /dev/sdb
(ไดรฟ์)
sudo mkfs -t ext4 /dev/sdb1
ระบบจะสร้างระบบไฟล์ให้คุณ และคุณจะกลับไปที่พรอมต์คำสั่ง
การติดตั้งไดรฟ์ใหม่
ในการใช้ไดรฟ์ใหม่ เราต้องต่อเชื่อมพาร์ติชั่นกับมันกับจุดต่อเชื่อมในระบบไฟล์ ที่จริงแล้ว เพื่อให้แม่นยำที่สุด เราไม่ได้ติดตั้งไดรฟ์หรือพาร์ติชั่น เรากำลังติดตั้ง ระบบไฟล์ บนพาร์ติชั่น โดยการต่อกิ่งเข้ากับ แผนผังระบบไฟล์ ของระบบของคุณ
จุด /mnt
เป็นสถานที่ที่ดีพอๆ กัน เป็นเพียงจุดเชื่อมต่อชั่วคราวเพื่อให้เราสามารถคัดลอกข้อมูลไปยังไดรฟ์ใหม่ได้ เราจะใช้คำสั่ง mount
เพื่อเมานต์ระบบไฟล์บนพาร์ติชั่นแรกบน /dev/sdb
ที่ /mnt
sudo mount /dev/sdb1 /mnt
หากทุกอย่างเป็นไปด้วยดี คุณจะกลับไปที่บรรทัดคำสั่งโดยไม่มีข้อความแสดงข้อผิดพลาด มาดูกันว่าเราสามารถเปลี่ยนไดเร็กทอรีเป็นระบบไฟล์ที่ติดตั้งใหม่ของเราได้หรือไม่
cd /mnt
ใช่เราทำได้ มาดูกันว่ามีอะไรบ้าง
ls -ahl
เราอยู่ในระบบไฟล์ใหม่ของเรา ไม่จำเป็นต้องใช้ไดเร็กทอรี "lost+found" เริ่มต้นเพื่อให้เราสามารถลบออกได้
sudo rm -rf lost+found
การคัดลอกโฟลเดอร์บ้านของคุณ
เราจำเป็นต้องคัดลอกทุกอย่างจากโฮมไดเร็กทอรีเก่าไปยังระบบไฟล์ที่ติดตั้งใหม่ การใช้ตัวเลือก r
(แบบเรียกซ้ำ) และ p
(คงไว้) จะช่วยให้มั่นใจได้ว่าไดเร็กทอรีย่อยทั้งหมดจะถูกคัดลอกและยังคงความเป็นเจ้าของไฟล์ สิทธิ์อนุญาต และแอตทริบิวต์อื่นๆ ไว้
sudo cp -rp /home/* /mnt
เมื่อการคัดลอกเสร็จสิ้น ให้ใช้ ls
เพื่อดูรอบๆ และตรวจสอบว่าข้อมูลของคุณอยู่ในตำแหน่งที่คุณคาดหวังให้อยู่ในระบบไฟล์ใหม่ กล่าวอีกนัยหนึ่ง ถ้า /mnt
เป็นโฮมไดเร็กตอรี่ของคุณ ทุกอย่างมีและถูกต้องหรือไม่?
ลส
ls dave
คุณอาจต้องการให้ละเอียดถี่ถ้วนมากกว่าที่เราเคยใช้ทดสอบเครื่องในบทความนี้ เพื่อเป็นเครือข่ายความปลอดภัย เราจะเปลี่ยนชื่อและเก็บไดเร็กทอรี /home
เก่าของคุณไว้จนกว่าคุณจะพอใจที่จะลบออกได้อย่างปลอดภัย
sudo mv /home /home.orig
และเราจะสร้างโฮมไดเร็กทอรีใหม่ที่ว่างเปล่า
sudo mkdir /home
เราจะใช้โฮมไดเร็กทอรีใหม่ที่ว่างเปล่านั้นเป็นจุดเชื่อมต่อสำหรับระบบไฟล์ของเราบนฮาร์ดไดรฟ์ใหม่ เราต้อง unmount จาก /mnt
และ remount บน /home
โปรดทราบว่าคำสั่ง umount
ไม่มี "n" หลัง "u"
แต่ก่อนอื่น เราจะเปลี่ยนเป็นไดเร็กทอรีราก (ด้วย cd /
) เพื่อให้แน่ใจว่าเราไม่ได้อยู่ในไดเร็กทอรีที่จะรวมอยู่ในตำแหน่งเมาต์หรือเลิกเมานท์
ซีดี /
sudo umount /dev/sdb1
sudo เมานต์ /dev/sdb1 /home/
ที่เกี่ยวข้อง: โครงสร้างไดเร็กทอรี Linux, อธิบาย
การทดสอบไดเรกทอรีบ้านใหม่ของคุณ
มาดูกันว่าตอนนี้คุณสมบัติของพาร์ติชั่น /dev/sdb1
คืออะไร:
df /dev/sdb1
เราแสดงให้เห็นชื่อของระบบไฟล์ ขนาดของพาร์ติชั่น และพื้นที่ที่ใช้และว่างบนนั้น และที่สำคัญคือ ติดตั้งไว้ที่ใด ตอนนี้เป็นไดเร็กทอรี /home
ของเราแล้ว นั่นหมายความว่าเราควรจะสามารถอ้างอิงได้เหมือนกับที่เราทำในไดเร็กทอรี /home
แบบเก่า
หากเราย้ายไปยังจุดที่ต้องการในระบบไฟล์ เราควรจะเปลี่ยนกลับเป็น /home
โดยใช้ทางลัด ~
tilde
ซีดี /
ซีดี ~
pwd
ลส
cd /home
ลส
cd dave
ลส
ls -a
เราสามารถย้ายผ่านระบบไฟล์ไปมาที่ /home
โดยใช้คำสั่งที่ชัดเจนและใช้ทางลัด ~
โฟลเดอร์ ไฟล์ และ dotfiles ที่เราคาดไว้มีอยู่ทั้งหมด ก็ดูดีไปหมด
หากมีสิ่งใดหายไป เราสามารถคัดลอกจากไดเร็กทอรี /home.orig
ซึ่งเรายังคงสามารถเข้าถึงได้ในรูทของระบบไฟล์ แต่ทุกอย่างก็ดูดี
ตอนนี้เราจำเป็นต้องติดตั้ง /dev/sdb1
โดยอัตโนมัติทุกครั้งที่คอมพิวเตอร์ของคุณเริ่มทำงาน
กำลังแก้ไข fstab
ไฟล์ "fstab" มีคำอธิบายของระบบไฟล์ที่จะติดตั้งเมื่อระบบบู๊ต ก่อนที่เราจะทำการเปลี่ยนแปลงใดๆ เราจะทำสำเนาสำรองของข้อมูลดังกล่าวซึ่งเราสามารถกลับไปใช้ได้ในกรณีที่เกิดปัญหา
sudo cp /etc/fstab /etc/fstab.orig
ตอนนี้เราสามารถแก้ไขไฟล์ fstab ได้แล้ว ใช้โปรแกรมแก้ไขที่คุณชื่นชอบ เรากำลังใช้ gedit
โปรแกรมแก้ไขข้อความใด ๆ
sudo gedit /etc/fstab
คุณต้องเพิ่มบรรทัดที่ด้านล่างของไฟล์เพื่อต่อเชื่อมไดเร็กทอรี /home
ใหม่ของเรา หากตัวระบุไดรฟ์และพาร์ติชันของคุณแตกต่างจากที่ใช้ในตัวอย่างนี้ ให้แทนที่ตัวระบุสำหรับ /dev/sdb1
ที่แสดงที่นี่
- พิมพ์ชื่อของพาร์ติชันที่จุดเริ่มต้นของบรรทัด แล้วกด Tab
- พิมพ์จุดต่อเชื่อม
/home
แล้วกด Tab - พิมพ์คำอธิบายระบบไฟล์
ext4
แล้วกด Tab - พิมพ์
defaults
สำหรับตัวเลือกการเมานท์ แล้วกด Tab - พิมพ์ตัวเลข
0
สำหรับตัวเลือกการถ่ายโอนข้อมูลระบบไฟล์ แล้วกด Tab - พิมพ์ตัวเลข
0
สำหรับตัวเลือกการตรวจสอบระบบไฟล์
บันทึกไฟล์ fstab
รีบูตระบบของคุณ
เราจำเป็นต้องรีบูตเพื่อตรวจสอบว่าทุกอย่างเป็นไปตามแผนและคุณมีการเชื่อมต่อที่ราบรื่นกับไดเร็กทอรี /home
ใหม่ของคุณ
หากไม่เป็นเช่นนั้น คุณจะยังมีเครือข่ายความปลอดภัยของไดเร็กทอรี /home
เดิมและไฟล์ fstab ที่สามารถกู้คืนได้หากจำเป็น เนื่องจากเราได้ใช้มาตรการป้องกัน เช่น การคัดลอกไดเร็กทอรี /home
และไฟล์ fstab คุณสามารถทำให้ระบบของคุณกลับสู่สถานะเดิมก่อนที่คุณจะเริ่มต้นได้อย่างง่ายดาย
sudo รีบูตทันที
ที่เกี่ยวข้อง: วิธีรีบูตหรือปิดระบบ Linux โดยใช้ Command Line
สอบปลายภาค
เมื่อระบบของคุณรีสตาร์ท ให้ตรวจสอบว่าไดเร็กทอรี /home
ของคุณอยู่บนฮาร์ดไดรฟ์ใหม่ของคุณจริง ๆ และระบบของคุณไม่ได้เปลี่ยนกลับไปใช้ไดเร็กทอรี /home
แบบเก่า (อย่างปาฏิหาริย์)
df /dev/sdb1
เยี่ยมมาก มันติดตั้งบน /home
ภารกิจเสร็จสมบูรณ์.
เมื่อคุณแน่ใจแล้วว่าคุณไม่ต้องการสำเนาความปลอดภัยของไดเร็กทอรีเก่า /home
อีกต่อไป คุณสามารถลบออกได้:
ซีดี /
sudo rm -rf home.orig/
และแน่นอน หากคุณรู้ว่ามีบางสิ่งที่ ไม่ได้ คัดลอกมาจากไฟล์เก่า /home
ไปยังใหม่ /home
คุณจะสามารถดึงข้อมูลนั้นจากข้อมูลสำรองที่คุณทำไว้ก่อนที่เราจะเริ่ม
บ้านที่แสนอบอุ่น
เมื่อคุณแยกไดเร็กทอรี /home
ออกจากพาร์ติชั่นระบบปฏิบัติการที่เหลือแล้ว คุณสามารถติดตั้งระบบปฏิบัติการใหม่ได้ และข้อมูลของคุณจะไม่ถูกแตะต้อง สิ่งที่คุณต้องทำคือแก้ไขไฟล์ fstab เพื่อต่อเชื่อมไดรฟ์ที่สองของคุณบน /home
และเนื่องจากไฟล์ dotfiles ทั้งหมดของคุณอยู่ในไดเร็กทอรี /home
เมื่อคุณเปิดแอปพลิเคชันต่างๆ พวกเขาจะพบการตั้งค่า ค่ากำหนด และข้อมูลทั้งหมดของคุณ
ขจัดความเจ็บปวดจากการติดตั้งใหม่และลดความเสี่ยงในการอัพเกรด
คำสั่งลินุกซ์ | ||
ไฟล์ | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · เข้าร่วม · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · ดู · strings · พิมพ์ · เปลี่ยนชื่อ · zip · unzip · เมานต์ · umount · ติดตั้ง · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · แพทช์ · แปลง · rclone · ฉีก · srm | |
กระบวนการ | alias · 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 · ปิดระบบ · รีบูต · หยุด · poweroff · 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 ที่ดีที่สุดสำหรับนักพัฒนาและผู้ที่ชื่นชอบ