डिस्क / hdd पर लगातार परिवर्तन के साथ यूएसबी-ड्राइव पर एक लाइव सिस्टम कैसे बनाएं


10

मैं उबंटू को लगातार परिवर्तन के साथ यूएसबी-ड्राइव पर स्थापित करने की कोशिश कर रहा था। हालाँकि मैं विभिन्न कारणों (प्रदर्शन, स्थान) के लिए USB के बजाय HDD में परिवर्तन लिखना चाहता था।

मुझे पता चला है, कि परिवर्तन एक फ़ाइल के भीतर संभाला जाता है जिसमें एक्स 3 फ़ाइल-सिस्टम होता है जो सिस्टम द्वारा घुड़सवार होता है (कैस्पर-रेज़)। लेकिन यह स्टार्टअप पर फ्लैश-ड्राइव पर ऑटो-डिटेक्ट लगता है।

मैं HDD पर एक नई कैस्पर-आरडब्ल्यू फ़ाइल कैसे बना सकता हूं और यूएसबी-ड्राइव पर उबंटू लाइव सिस्टम को एचडीडी में फिर से तैयार कर सकता हूं?

2015-07-14 को संपादित करें:

अब तक के जवाब के लिए धन्यवाद। वे बहुत दिलचस्प हैं और "लाइव सिस्टम सस्टेनेबल सेव फीचर" के यांत्रिकी को बेहतर ढंग से समझने में मदद करते हैं, और समस्या को हल करने के लिए अच्छे दृष्टिकोण दिखाते हैं। दुर्भाग्य से मैं कुछ सीमाओं को दूर करने की कोशिश कर रहा था, जो कि मेजबान प्रणाली और / या नए हार्डवेयर तक पहुंच के संबंध में सवाल पूछने के दौरान मेरे मन में स्पष्ट रूप से नहीं था (इसके लिए खेद है)।

यदि विभाजन एक विकल्प है, तो मुझे लगता है कि यहां कहा गया उत्तर बहुत अच्छा है, क्योंकि इसके लिए आपको केवल एक नया विभाजन बनाने की आवश्यकता है, इसे कैस्पर-आरवी लेबल करें और आप काम कर रहे हैं (काम बढ़िया है, मैंने इसका परीक्षण किया)।

यदि नया हार्डवेयर खरीदना एक विकल्प है, तो usb3.0 फ्लैश-ड्राइव (MLC या SLC), पोर्टेबल HDDs, eSATA और अन्य विकल्प दिमाग में आते हैं जिनका औसत USB2.0 फ्लैश-ड्राइव की तुलना में कहीं बेहतर प्रदर्शन है।

तो मैं सोच रहा था कि वहाँ एक डिस्क पर विभाजन के बजाय एक कैस्पर-आरडब्ल्यू फ़ाइल बनाने का एक तरीका है, (फ्लैश-ड्राइव पर एक को कॉपी करना / लिंक करना)।

इस तरह से कैस्पर-आरडब्ल्यू फ़ाइल को फ्लैश-ड्राइव पर वापस कॉपी करना आसान होगा और इसे फिर से वहां से उपयोग किया जा सकता है या इसे दूसरे कंप्यूटर में स्थानांतरित किया जा सकता है, जिससे महान लचीलापन, एचडीडी में न्यूनतम बदलाव और इसमें किए गए परिवर्तनों को आसानी से हटाया जा सके प्रणाली।


निश्चित नहीं है कि यह एक विकल्प है, लेकिन यदि आपको केवल डेटा को बचाने की आवश्यकता है, तो आप अपने लाइव फ़ाइल सिस्टम ट्री में कहीं न कहीं एक एचडीडी विभाजन को माउंट कर सकते हैं ... इस तरह से आपके पास डिस्क पर स्थित केवल विशिष्ट फ़ोल्डर हैं।
बाइट कमांडर

@ByteCommander आपकी टिप्पणी के लिए धन्यवाद। दुर्भाग्य से एचडीडी को विभाजित करना मेरे लिए कोई विकल्प नहीं है और मैं चाहता हूं कि सब कुछ जितना संभव हो उतना कॉम्पैक्ट हो, ताकि मैं डेटा को तेजी से और सरल रूप से हटा सकूं, इसलिए एचडीडी पर एक भी फाइल आदर्श होगी।
एलएस

फ़ाइल सिस्टम की छवि वाली फ़ाइल को माउंट करना संभव होना चाहिए (जैसे .iso या .img, शायद अधिक)। दुर्भाग्य से मैं इस कभी नहीं किया था और आपको नहीं बता कैसे ... ऐसा करने के लिए कर सकते हैं
बाइट कमांडर

आप कैसे जानते हैं कि यह काम नहीं कर रहा है? क्या आपकी फाइल कास्पर-आरडब्ल्यू है ? क्या यह आपके विभाजन की जड़ में है ? मैंने ऐसा किया है (HDD पर हठ का उपयोग करके एक विभाजन जिसके साथ कैस्पर-आरडब्ल्यू लेबल किया गया है) और मुझे कोई अतिरिक्त आवश्यक कदम याद नहीं है।
solsTiCe

आपका नवीनतम संपादन आपके प्रश्न को व्यापक उपयोग के लिए विशिष्ट बनाता है (जो कि मेरा उत्तर है ...) यह असंभव नहीं है, लेकिन इसका मतलब स्क्रिप्ट और udev नियम बनाना होगा [अनमाउंट] - [सम्मिलित करने के लिए सिंक्रनाइज़ करें] - [माउंट] सम्मिलन पर [[अनमाउंट पर एचडीडी को सिंक्रनाइज़ करें), लेकिन यह एक टन का काम है और वास्तव में इस तरह की क्यू एंड ए साइट के लिए अनुकूल नहीं है।
फेबी

जवाबों:


4

आप हार्ड डिस्क पर लाइव मीडिया के लिए आसानी से लिखने योग्य फाइल सिस्टम (कैस्पर-आरडब्ल्यू फ़ाइल में) डाल सकते हैं। सीमा यह है कि कैस्पर-आरडब्ल्यू फ़ाइल को एफएटी विभाजन पर जाना चाहिए। नई मशीनों (UEFI) में सभी FAT EFI विभाजन है, लेकिन यह आमतौर पर 1G-4G कैस्पर-आरडब्ल्यू फ़ाइल को रखने के लिए बहुत छोटा है। एक और बड़े एफएटी विभाजन पर, आप निर्देशिका बना सकते हैं, प्रत्येक संभवतः अलग-अलग लाइव मेडिया के लिए कैस्पर-आरडब्ल्यू फ़ाइल पकड़ सकता है। मान लीजिए कि sda11 10G है और इसमें 10G FAT फाइलसिस्टम है, जिसे / mnt / sda11 पर लगाया गया है, जिस पर निर्देशिका / A, / B, / C, / D, और / E हैं। मान लें कि हम अपने लगातार मीडिया के लिए / ए का उपयोग करेंगे, वहां एक कैस्पर-आरडब्ल्यू डालेंगे।

cd /mnt/sda11/A
dd if=/dev/zero of=casper-rw bs=1M  count=4096
mkfs.ext4 -F -O^has_journal -L casper-rw casper-rw

अपने लाइव मीडिया को दृढ़ता के साथ बनाएं, और /boot/grub/grub.cfg फ़ाइल और /syslinux/txt.cfg फ़ाइल को संपादित करें, "लगातार" शब्द के बाद

"persistent-path=/A"

/boot/grub/grub.cfg ...

menuentry "Try Ubuntu without installing" {
    set gfxpayload=keep
    linux   /casper/vmlinuz.efi  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --- cdrom-detect/try-usb=true noprompt persistent persistent-path=/A
    initrd  /casper/initrd.lz
}

/syslinux/txt.cfg

default live
label live
menu label ^Try Ubuntu without installing
kernel /casper/vmlinuz.efi
append noprompt cdrom-detect/try-usb=true persistent persistent-path=/A file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash ---
label live-install
...

बस। आपको USB मीडिया पर कैस्पर-आरडब्ल्यू फ़ाइल का नाम बदलने / हटाने की भी आवश्यकता नहीं है।


यदि USB मीडिया पर कोई जगह है, तो आप हार्ड डिस्क के कैस्पर-आरडब्ल्यू को वापस यूएसबी पर कॉपी कर सकते हैं, और अपने परिवर्तनों को अपने साथ ले जा सकते हैं।


लगातार-पथ किसी भी स्पष्ट डिस्क संदर्भ की अनुमति नहीं देता है, इसलिए सभी एफएटी विभाजन में अद्वितीय होना चाहिए। 1 या 2 FAT विभाजन (EFI विभाजन होने के साथ) का परीक्षण किया गया। FAT के बजाय ext2 या ntfs फाइल सिस्टम पर काम नहीं करेगा। यदि आप "टॉरम" शब्द को उसी लाइन पर "लगातार" के रूप में भी जोड़ते हैं, तो धीमी USB पर आपके संपीड़ित फ़ाइल सिस्टम को राम में कॉपी किया जाएगा और बेहतर प्रदर्शन देगा, हालाँकि, FAT विभाजन के साथ शटडाउन समस्या प्रतीत होती है साफ तौर पर अनमाउंट नहीं किया जा रहा है (जिसके कारण कोई समस्या नहीं है लेकिन ...)


धन्यवाद। इससे चीजें बहुत साफ होती हैं। मुझे लगता है कि बूट स्थिति में ntfs को मान्यता नहीं दी जा सकती है (दाएं?) इस प्रकार ntfs विभाजन पर कैस्पर-आरडब्ल्यू होना असंभव है। इसलिए मुझे लगता है कि मैं या तो ext4 विभाजन के साथ जाऊँगा जिसे कैस्पर-आरडब्ल्यू लेबल किया गया था या कुछ "टरम" या रैमड्राइव सामान की कोशिश की गई थी।
एलएस

आप कैसे संशोधित grub.cfgया syslinux.txtदिए गए हैं कि आप केवल लाइव मीडिया को केवल माउंट कर सकते हैं क्योंकि यह एक आईएसओ है?
solsTiCe

उपरोक्त ने लाइव-मीडिया यूएसबी बनाने के लिए आईएसओ का उपयोग किया, जिस पर फाइलें लिखने योग्य हैं। आईएसओ को सीधे बूट करना (उदाहरण के लिए एक हार्ड डिस्क से) पूरी तरह से अलग ग्रब (हार्ड डिस्क पर एक) का उपयोग करता है जिनकी फाइलें संपादन योग्य हैं - यह मामला आईएसओ से बूट तंत्र का उपयोग नहीं करने का है।
ubfan1

7

यदि आप निम्न सेट-अप का उपयोग करते हैं तो यह बहुत आसान है:

  1. SLC USB स्टिक पर USB स्थापित करें (यदि आपका हार्डवेयर इसे सपोर्ट करता है तो USB 3.0 पसंद किया गया है) बिना किसी कैस्पर स्टफ के (बस एक सामान्य इंस्टाल, USB स्टिक को SSD के रूप में मानते हुए)।

    क्यों? SLCS के रूप में महंगा रूप में दो बार कर रहे हैं विधान पार्षद पर वे 4 तेजी से बार और पिछले 8 * लंबे समय तक कर रहे हैं! तो वे वास्तव में एक छड़ी पर छोटे एसएसडी हैं!

  2. सिस्टम को ऑप्टिमाइज़ करें और USB स्टिक को एक छोटे SSD के रूप में समझें, इसलिए:

    आपके /etc/sysctl.confऐड में:

    # Fabby: change the "swappiness" to 10 to prevent swapping as much as possible
    # to not wear out the USB stick as the Ubuntu default is optimized for a server.
    # 10 to balance with vfs_cache_pressure
    vm.swappiness = 10
    
    # Fabby: Lower vfs_cache_pressure to 75% 
    # (once cached, probably not immediately needed any more)
    #
    # This percentage value controls the tendency of the kernel to reclaim
    # the memory which is used for caching of directory and inode objects.
    #
    # At the default value of vfs_cache_pressure=100 the kernel will attempt to
    # reclaim dentries and inodes at a "fair" rate with respect to pagecache and
    # swapcache reclaim.  Decreasing vfs_cache_pressure causes the kernel to prefer
    # to retain dentry and inode caches.
    vm.vfs_cache_pressure = 75
    
    # Fabby: Good to improve sequential reads (stop stuttering in movie play)
    # Can also be implemented per disk using udev rules
    vm.max-readahead=2048
    vm.min-readahead=1024
    

    अपने में /etc/fstabजोड़ बोल्ड paramaters अपने बूट यूएसबी लाइन के लिए। (यह शायद sdcया होगा sdd। नीचे एक उदाहरण है, यदि संभव हो तो यूआईडी का उपयोग करें)

    /dev/sdc / ext4 defaults,noatime,discard,errors=remount-ro 0 1

  3. 2 उपयोगकर्ता बनाएं: एक व्यवस्थापक उपयोगकर्ता जिसके पास USB स्टिक पर अपनी होम डायरेक्टरी है, लेकिन बहुत कम फाइलें हैं और एक सामान्य उपयोगकर्ता है जिसकी HDD पर होम डायरेक्टरी होगी

  4. केवल अब HDD डालें और HDD fstabको ऑटो-माउंट करने के लिए आवश्यक HDD जानकारी जोड़ें और निम्नलिखित पैरामीटर जोड़ें:

    nobootwait,nofail

    जब HDD मौजूद नहीं है तब भी बूटिंग की अनुमति देने के लिए (यदि यह मामला है, केवल व्यवस्थापक उपयोगकर्ता की पहुंच होगी, सामान्य उपयोगकर्ता की नहीं)

  5. अब व्यवस्थापक उपयोगकर्ता के रूप में लॉग इन करें और USB छड़ी से HDD में सामान्य उपयोगकर्ता के लिए होम डायरेक्टरी को स्थानांतरित करें:

cp --preserve=all /home/NormalUser/* /media/ExternalHDD/NormalUser

यदि सब ठीक है:

rm --recursive --force /home/NormalUser/*
cd /home
ln --symbolic /media/ExternalHDD/NormalUser

किया हुआ! :-)

रिकॉर्ड के लिए: मेरे पास एक 16 जीबी यूएसबी 2.0 एमएलसी स्टिक है बस (अधिक तो मेरे उपयोग के मामले के लिए पर्याप्त है और बहुत महंगा नहीं है और यह अभी भी लगभग 5 साल पुराना है और अभी भी चल रहा है!)

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