วิธีย้ายโฮมไดเร็กทอรี Linux ของคุณไปยังไดรฟ์อื่น

เผยแพร่แล้ว: 2022-01-29
เทอร์มินัล Linux บนแล็ปท็อปที่มีสไตล์
Fatmawati Achmad Zaenuri/Shutterstock

ต้องการย้ายโฮมโฟลเดอร์ 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 สำหรับตัวเลือกการตรวจสอบระบบไฟล์

ใช้ gedit เพื่อแก้ไขไฟล์ fstab

บันทึกไฟล์ 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 เมื่อคุณเปิดแอปพลิเคชันต่างๆ พวกเขาจะพบการตั้งค่า ค่ากำหนด และข้อมูลทั้งหมดของคุณ

ขจัดความเจ็บปวดจากการติดตั้งใหม่และลดความเสี่ยงในการอัพเกรด

ที่เกี่ยวข้อง: แล็ปท็อป Linux ที่ดีที่สุดสำหรับนักพัฒนาและผู้ที่ชื่นชอบ