ลิงก์ข้ามอุปกรณ์ไม่ถูกต้องขณะทำการเชื่อมโยงในระบบไฟล์เดียวกัน


14

ฉันมีไฟล์/home/myuser/Desktop/rc/.netrcที่ฉันต้องการฮาร์ดลิงก์ไปยัง/ rootนั่นคือโฮมไดเร็กทอรีของผู้ใช้รูท เมื่อฉันทำ:

ln /home/user/Destkop/rc/.netrc /root

มันให้ข้อผิดพลาดดังต่อไปนี้:

ln: การสร้างฮาร์ดลิงก์/root/.netrc' =>. netrc ': ลิงก์ข้ามอุปกรณ์ไม่ถูกต้อง

แต่การทำงานเมื่อฉัน hardlink ไฟล์เพื่อmyuserของบ้านคือการ/ home / myuser

แล้วปัญหาคืออะไรทำไมมันถึงบอกว่าอุปกรณ์ไขว้ที่ไม่ถูกต้องเมื่อมีระบบไฟล์เพียงระบบเดียว?

PS ฉันใช้RHEL6


btw สิทธิ์. netrc ของฉันคือ 600 อย่างที่ควรจะเป็น
Elvin Aslanov

1
คุณแน่ใจหรือไม่ว่าทั้งสองไดเรกทอรีอยู่ในระบบไฟล์เดียวกัน เรียกใช้mount | column -tและดู หรือเรียกใช้mountpoint -d /, mountpoint -d /home, และmountpoint -d user mountpoint -d /rootคุณควรจะได้... is not a mountpointสามครั้งสุดท้าย

2
โปรดอย่าข้ามโพสต์ในเว็บไซต์ StackExchange หลายแห่ง

@EvanTeitelman รูปลักษณ์ที่แท้จริงคือไม่ได้แต่mount | column -t column -t < /proc/mounts
Hauke ​​Laging

1
@HaukeLaging: คุณพูดถูก /proc/mountsมีแนวโน้มที่จะแสดงการเมานต์ทั้งหมดบนระบบมากกว่า/etc/mtabซึ่งเป็นตำแหน่งที่mountดึงข้อมูลออกมา แต่ก็เป็นที่น่าสังเกตว่าในระบบที่ทันสมัยจำนวนมาก/etc/mtabและมีทั้งที่เชื่อมโยงกับ/proc/mounts /proc/self/mounts

คำตอบ:


8

เป็นไปได้มากว่า/homeไดเรกทอรีของคุณไม่ได้อยู่ในพาร์ทิชันเดียวกันกับ/rootไดเรกทอรี

คุณสามารถตรวจสอบสิ่งนี้ได้อย่างง่ายดายด้วยcat /etc/fstab ฮาร์ดลิ้งค์ไม่สามารถสร้างขึ้นระหว่างพาร์ติชั่นต่าง ๆ ได้เพียง symlink เท่านั้น


4

ฉันคิดว่าวิธีที่ดีที่สุดคือไม่ใช้ลิงก์ HARD แต่ใช้ลิงค์สัญลักษณ์แทน คุณจะพบว่ามันไม่ยุ่งยากและสิ่งต่าง ๆ ทำงานได้ดี ฮาร์ดลิงก์มีปัญหาที่น่าสนใจหากคุณไม่ทราบ

ดูman lnและชำระเงิน-sตัวเลือก!

โปรดใช้ลิงก์สัญลักษณ์โดยทั่วไปแทนลิงก์ HARD


9
แม้ว่ามันอาจจะแก้ปัญหาได้ แต่ก็ไม่ได้อธิบายว่าทำไมสิ่งนี้ถึงเกิดขึ้น
Bex
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.