Gedit จะไม่บันทึกไฟล์ในการแบ่งปัน VirtualBox: ไฟล์ข้อความไม่ว่าง


29

ฉันมีไฟล์ข้อความที่ฉันสามารถเปลี่ยนได้โดยใช้แอปพลิเคชันอื่น (ตัวอย่างopenoffice) แต่เมื่อฉันพยายามเปลี่ยนและบันทึกโดยใช้geditฉันได้รับข้อผิดพลาดจากgedit:

Could not save the file /media/sf_Ubuntu/BuildNotes.txt.
Unexpected error: Error renaming temporary file: Text file busy

สิทธิ์ของ BuildNotes.txt เป็นดังนี้:

-rwxrwx--- 1 root vboxsf  839 2012-10-26 12:08 BuildNotes.txt

และ ID ผู้ใช้คือ:

m@m-Linux:/media/sf_Ubuntu$ id
uid=1000(m) gid=1000(m) groups=4(adm),20(dialout),24(cdrom),46(plugdev),105(lpadmin),119(admin),122(sambashare),1000(m),1001(vboxsf)

ปัญหาคืออะไรและฉันจะแก้ไขได้อย่างไร


และเสียงเรียกเข้าทำงานได้ดี ...
ลีออน

คำตอบ:


17

มีการรายงานปัญหานี้ตั้งแต่ปี 2009 (google สำหรับ 'gedit virtualbox') มันแย่มากที่ยังไม่มีการแก้ไข นักพัฒนา VirtualBox และ Gedit ไม่เต็มใจที่จะรับผิดชอบและแทนที่จะเป็นเนื้อหาที่ชี้ให้คนอื่นใช้เวลานานกว่าสามปี

คุณสามารถตั้งค่าตัวแก้ไขของคุณเป็น 'สร้างการสำรองข้อมูล' จากนั้นบันทึกสองครั้ง เจ็บปวดอย่างไม่น่าเชื่อ แต่ใช้งานได้

ผู้แก้ไขอื่นบางคนจะไม่รายงานปัญหา อย่างไรก็ตามเมื่อฉันทดสอบ Kate และ nano สิ่งเหล่านั้นเพียงลบไฟล์อย่างเงียบ ๆ ในการบันทึกอื่น ๆ นั่นเลวร้ายยิ่งกว่าสถานการณ์ gedit ...


2
มันจะมีประโยชน์ถ้าคุณรวมลิงค์ไปยังรายงานบั๊ก 2009 มันอาจช่วยให้ผู้อื่นติดตามปัญหา
jasonwryan

กรุณารวมไว้ในในคำตอบของคุณ: เว็บไซต์ที่เป็นวิกิพีเดีย ...
jasonwryan


2
คำทักทายจากอนาคต "กว่าสามปี"ได้หันตอนนี้เป็น"กว่าแปดปี" ปัญหานี้ยังคงมีอยู่
ท่อ

ดังนั้น.....? เรามีวิธีแก้ปัญหาหรือเปล่า?
Mohd Abdul Mujib

6

“ ไฟล์ข้อความไม่ว่าง” อาจสร้างความสับสนได้ที่นี่: มันไม่เกี่ยวกับไฟล์ข้อความ แต่เกี่ยวกับไฟล์ที่เรียกทำงานได้ executables จะเรียกว่าไฟล์ข้อความเพราะ ... ครวญเพลงจริงผมไม่ทราบว่าทำไม

ความหมายของข้อความคือ“ ไฟล์นี้ถูกล็อคโดยโปรแกรมอื่นที่กำลังใช้งานอยู่และไม่อนุญาตให้แก้ไขภายใต้จมูกของมันดังนั้นคุณจึงไม่สามารถเขียนมันได้” มันค่อนข้างแปลกที่จะเห็นข้อความนี้สำหรับ ไฟล์ข้อความ: โดยทั่วไประบบยูนิกซ์ขมวดคิ้วในการล็อคไฟล์และไม่มีสิ่งอำนวยความสะดวกสำหรับแอพพลิเคชั่นที่จะล็อคเอาไว้จากการแก้ไขไฟล์ (Unix มีการล็อกคำแนะนำ: สามารถใช้เพื่อซิงโครไนซ์การเข้าถึงไฟล์พร้อมกันโดยร่วมมือกับโปรแกรม) สถานการณ์ที่พบบ่อยที่สุดเมื่อคุณเห็น“ ไฟล์ข้อความไม่ว่าง” ( ETXTBUSY) คือหากคุณพยายามแก้ไขไฟล์ที่รันอยู่ เคอร์เนลล็อคมัน ความเป็นไปได้อีกอย่างคือดิสก์อิมเมจที่ติดตั้งถูกล็อคอีกครั้งโดยเคอร์เนล

ในกรณีของคุณจากตำแหน่งของไฟล์/media/sf_Ubuntuและความเป็นเจ้าของในกลุ่มvboxsfฉันเดาว่าไฟล์ซึ่งอยู่ในระบบไฟล์แชร์ไฟล์ VirtualBox ถูกล็อคในระบบปฏิบัติการโฮสต์ สันนิษฐานว่าโฮสต์เป็นเครื่อง Windows และคุณยังมีไฟล์ที่เปิดอยู่ในโปรแกรมแก้ไขที่นั่น คุณจะต้องปิดไฟล์ในโฮสต์ก่อนจึงจะสามารถบันทึกในเครื่องมือแก้ไขใน VM


4
ขอบคุณ ฉัน% 100 แน่ใจว่าไฟล์ไม่ได้เป็น oprn ใน windows และยังไม่มีแอปพลิเคชันอื่นที่ใช้งานอยู่ ฉันสามารถเปิดได้โดยใช้ OpenOffice และด้วยเหตุนี้ฉันมั่นใจว่าจะไม่เปิดโดยแอปพลิเคชันอื่น มันเป็น gedit เท่านั้นที่ไม่สามารถบันทึกได้
user654019

2
ฉันมีปัญหาเดียวกัน ทุกโปรแกรมในระบบปฏิบัติการของแขกใช้งานได้ดี แต่ gedit มีบางอย่างเกิดขึ้น
GlassGhost

2

ตรวจสอบlsofว่าไฟล์เปิดโดยแอปพลิเคชั่นอื่นหรือไม่

lsof /media/sf_Ubuntu/BuildNotes.txt

หรือใช้fuser:

fuser -km /media/sf_Ubuntu/BuildNotes.txt


1

สิ่งที่แก้ไขให้ฉัน (ยังคงน่ารำคาญอยู่บ้าง แต่ใช้งานได้) และใช้ได้กับ gedit คือ:

แก้ไข - การตั้งค่า - บรรณาธิการใส่เครื่องหมายใน "สร้างสำเนาสำรอง"

เมื่อบันทึกจากนี้ไปให้บันทึกไฟล์หนึ่งครั้งละเว้นข้อผิดพลาดบันทึกอีกครั้ง ทำงานทุกครั้ง


ในปี 2019 ข้อผิดพลาดนี้ยังคงเกิดขึ้น วิธีแก้ปัญหานี้ใช้งานได้
เดวิด

0

ใช้ terminal linux ลองแก้ไขไฟล์โดยใช้ vi file_name และบันทึก ป.ล. ฉันไม่พบวิธีแก้ไขปัญหาอื่นสำหรับปัญหานี้ vi ทำงาน

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