TAR फाइल को ISO फाइल में कैसे बदलें


9

मेरे पास एक Linux TAR फाइल है जिसे मैं सीधे ISO में बदलना चाहता हूं। क्या ऐसा करने का एक तरीका है, अधिमानतः, पहले फ़ाइल की सामग्री को निकालने के बिना?

यह निम्नलिखित प्रश्न के समान होगा ; हालाँकि, यह सादा या सीधी-टार फ़ाइलों पर केंद्रित है और bzip या bzipped tar से संबंधित नहीं है।

यह भी एक ऐसी चीज है जिसका मैंने एक स्क्रिप्ट के भीतर उपयोग करने का इरादा किया है और इसका कारण यह है कि मैं इसे पहले नहीं निकालना चाहता हूं।


सैद्धांतिक रूप से यह प्रत्येक फ़ाइलों को डिस्क में निकालने के बिना किया जा सकता है (उन्हें नई छवि में डालने के लिए संग्रह से निकाला जाना चाहिए), लेकिन मुझे ऐसा कुछ भी नहीं पता है जो करता है।
इग्नासियो वाज़केज़-अब्राम्स

आप टार निकाले बिना ऐसा क्यों करना चाहते हैं?
नेल्स

मुझे आश्चर्य है कि अगर स्टड जैसी किसी चीज को पाइप करने का तरीका है और फिर इसे आईएसओ फाइल पर पाइप करना है ???
जॉन

मुझे यकीन नहीं है कि यह काम करेगा या नहीं, क्योंकि मैं यह सुनिश्चित करने के लिए 100% नहीं हूं कि कमांड क्या कर रहा है। - tar -jxf / dev / stdin file.tar | mkisofs -o file.iso -stream-media-size 512
John

वास्तव में मीडिया-मीडिया का विकल्प इसके लिए बनाया गया था! :-) जानकारी के लिए genisoimage man पेज देखें - वर्तमान में इस विकल्प के लिए डॉक्स में टार का उल्लेख है (और इसके लिए उदाहरणों में इसका उपयोग करता है)।
अब्बैफी

जवाबों:


6

उपयोग AVFS tar संग्रह की सामग्री का उपयोग करने के लिए जैसे कि यह एक निर्देशिका था। AVFS FUSE पर निर्मित एक वर्चुअल फाइलसिस्टम है । टार पुरालेख के अंदर निर्देशिका के लिए अपने पसंदीदा आईएसओ बिल्डर को इंगित करें।

mountavfs
cd ~/.avfs/path/to/archive.tar\#
genisoimage -o /path/to/iso .

@ गिल्स - विचार के लिए धन्यवाद। ऐसा लगता है कि यह एक उत्कृष्ट विचार हो सकता है; हालाँकि, मैं CentOS 6 पर हूँ और AVFS को स्थापित करने की कोशिश कर रही समस्याओं में भाग रहा हूँ।
जॉन

1

यदि आपके प्राथमिक उद्देश्य प्रक्रिया में तेजी लाने के लिए और प्रदर्शन कारणों से अनावश्यक डिस्क गतिविधि से बचने के लिए हैं, और आपके पास आपके तारबॉल के आकार के सापेक्ष बहुत सारे रैम हैं, तो आप tmpfs का उपयोग करके RAM में .tar को निकाल सकते हैं । यह विकल्प सबसे तेजी से उपलब्ध होने की संभावना है, जब तक कि आप काम करने के लिए @ बुलरिक के पाइप दृष्टिकोण को प्राप्त करने में सक्षम नहीं होते हैं और आप एक डिस्क से पढ़ रहे हैं और दूसरे से लिख रहे हैं।


0
archivemount /file.tar /media/ISO

या असम्पीडित .tar और

genisoimage -o myfile.iso directory_src

( फ़ोल्डर /media/ISO या बिंदु माउंट हो सकता है/media/cdrom )


-2

आपको इसे निकालना होगा, लेकिन आपको इसे अपने हार्डड्राइव तक नहीं निकालना चाहिए।

tar --to-stdout xf tareddata.tar | genisoimage -o image.iso tareddata

झसे आज़माओ: mount -o loop image.iso /mnt

आप इस समस्या को स्वचालित करने के लिए एक छोटी सी स्क्रिप्ट लिख सकते हैं

चिकना बैल


और यह अगले से एक फ़ाइल कैसे बताएगा?
इग्नासियो वाज़केज़-अब्राम्स

जब मैं इसे चलाता हूं तो मुझे त्रुटियों की एक श्रृंखला मिलती है, पहला है: टार: आपको -Acdtrux' or --test-label 'विकल्पों में से एक को निर्दिष्ट करना होगा । अगली त्रुटि यह है: I: -input-charset निर्दिष्ट नहीं है, utf-8 (स्थानीय सेटिंग में पाया गया) का उपयोग कर। अंतिम त्रुटि है: genisoimage: ऐसी कोई फ़ाइल या निर्देशिका नहीं है। अमान्य नोड - 'टारडेटा'।
जॉन

पहली समस्या जिसका मैं हल करता हूं, मैंने टार में एक गलत विकल्प लिया है; मेरी राय में दूसरा एक हम्म पहली निर्देशिका निकाले जाते हैं जैसे कि tardata.tar tardata
बुलरिक

क्षमा करें, मुझे पूरा यकीन है कि इससे कोई काम नहीं हो सकता; -1।
9
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.