टर्मिनल से बूट करने योग्य उबंटू यूएसबी फ्लैश ड्राइव कैसे बनाएं?


353

क्या YUMI , Unetbootin , स्टार्टअप डिस्क निर्माता , आदि जैसे किसी भी तृतीय-पक्ष एप्लिकेशन का उपयोग किए बिना टर्मिनल से बूट करने योग्य उबंटू यूएसबी फ्लैश ड्राइव बनाने का कोई तरीका है ।

मैंने ddविधि के साथ बूट करने योग्य उबंटू फ्लैश ड्राइव बनाने की कोशिश की ,

sudo umount /dev/sdb
sudo dd if=/path/to/ubuntu.iso of=/dev/sdb bs=1M

यह USB डिस्क पर फाइलें बनाता है, लेकिन जब मैं USB डिस्क को बूट करने की कोशिश करता हूं तो यह एक Operating System Not Foundत्रुटि दिखाता है ।


आपको यह सुनिश्चित करना होगा कि आपका USB फ्लैश ड्राइव आरोहित न हो। Lsblk से जांच करें। यदि आवश्यक हो, sudo umount / dev / sdb (शायद sdb1, sdb2) करें। जोड़ें; गूंज $ आपकी dd कॉपी कमांड के बाद। तो: sudo dd if = ... of = ... bs = 4M; इको $? यदि कमांड समाप्त होता है, तो लौटने का मान 0. होना चाहिए

मैं अपने कदम follwed, लेकिन यह भी बनाता है के रूप में एक ही फाइल बनाता है। यह sudo umount /dev/sdb sudo dd if=/path/to/ubuntu.iso of=/dev/sdb bs=1Mकिसी भी ubninit,ldlinux.sys,etcफाइल जो मुख्य रूप से बूट करने के लिए एक लिनक्स ओएस महत्वपूर्ण हैं पैदा नहीं करता है ।
अविनाश राज

मैं अंतिम चरण के रूप में USB डिस्क के एमबीआर पर ग्रब स्थापित करूंगा।
एल्डर गीक

2
आसान टर्मिनल का उपयोग कर निर्मित उपकरणों के साथ जिस तरह से उपयोग करने के लिए है ddके रूप में यहाँ वर्णित। यह सभी हाइब्रिड आईएसओ फाइलों के साथ काम करता है। लेकिन ddएक खतरनाक उपकरण है क्योंकि यह वही करता है जो आप इसे बिना किसी सवाल के करते हैं। तो अगर आप इसे पारिवारिक चित्रों को पोंछने के लिए कहते हैं ... और यह एक छोटी टाइपिंग त्रुटि है। कई उपकरण अधिक सुरक्षित हैं। वे आपको लक्ष्य ड्राइव को पहचानने और चुनने में मदद करते हैं, और एक अंतिम चेकपॉइंट प्रदान करते हैं , जहाँ आप डबल-चेक कर सकते हैं, कि आप सही ड्राइव पर लिख रहे हैं। इनमें से अधिकांश GUI उपकरण हैं, कुछ पाठ मोड में भी काम कर सकते हैं, जैसे mkusb-dus
सुडोडुस

1
निम्न लिंक एक उदाहरण दिखाता है, जहां गलती से आंतरिक ड्राइव को ओवरराइट कर दिया गया था, जब ddबूट करने योग्य उबंटू यूएसबी फ्लैश ड्राइव बनाने के लिए कमांड लाइन का इस्तेमाल किया गया था, askubuntu.com/questions/982552/accidentally-did-dd-dev-dev sda
sudodus

जवाबों:


431

आप उपयोग कर सकते हैं dd

 sudo umount /dev/sd<?><?>  

जहां <?><?>एक अक्षर एक संख्या के बाद होता है, उसे चलाकर देखें lsblk

यह कुछ ऐसा दिखेगा

sdb      8:16   1  14.9G  0 disk 
├─sdb1   8:17   1   1.6G  0 part /media/username/usb volume name
└─sdb2   8:18   1   2.4M  0 part 

मैं sdb1 को अलग कर दूंगा।

फिर, अगला (यह एक विनाशकारी कमांड है और पूरे यूएसबी ड्राइव को आइसो की सामग्री से मिटा देता है, इसलिए सावधान रहें):

 sudo dd bs=4M if=path/to/input.iso of=/dev/sd<?> conv=fdatasync  status=progress

input.isoइनपुट फ़ाइल कहां है, और /dev/sd<?>वह USB डिवाइस है जिसे आप लिख रहे हैं ( अपने USB के लिए lsblkक्या है <?>यह जानने के लिए सभी ड्राइव देखें )।

यह विधि तेज है और मुझे कभी असफल नहीं हुई।


संपादित करें: मैक पर उन लोगों के लिए जो यहां समाप्त हो रहे हैं, के लिए लोअरकेस का उपयोग करें bs=4m:

sudo dd if=inputfile.img of=/dev/disk<?> bs=4m && sync

EDIT: यदि USB ड्राइव बूट नहीं होता है (यह मेरे साथ हुआ है), ऐसा इसलिए है क्योंकि लक्ष्य ड्राइव के बजाय ड्राइव पर एक विशेष विभाजन है। अतः लक्ष्य को / dev / sdc होना चाहिए न कि dev / sdc <?>मेरे लिए यह / dev / sdb था।

संदर्भ: https://superuser.com/a/407327 और https://askubuntu.com/a/579615/669976


13
यह मेरे लिए काम नहीं करता है।
अविनाश राज

7
वास्तव में? क्या आप सुनिश्चित हैं कि आपके पास पथ सहित सही .iso फ़ाइल का नाम और आपके USB ड्राइव के लिए सही / देव है? यह कैसे विफल होता है? क्या कोई त्रुटि संदेश है, या यह केवल बूट करने में विफल है? क्या आप सुनिश्चित हैं कि .iso भ्रष्ट नहीं है?
मार्क

8
आपके पास एक भ्रष्ट .iso हो सकता है। क्या आपने इसकी जाँच की है? आप कुछ .iso कुछ है कि की एक प्रति वास्तव में है है बूट?
मार्क

5
मूल प्रश्न और सबसे उत्तोलित उत्तर वही व्यक्ति है जिसने कहा कि यह विधि उसके लिए काम नहीं कर रही है। ;-) मेरे लिए स्वीकृत जवाब काम नहीं कर रहा है और यह एक करता है। :-) अपवोटिंग।
ड्रेचनफेल्स

20
status=progressकमांड लाइन में एक जोड़ने से भी मदद मिलती है, यह देखने के लिए कि टॉप कॉपी कितनी बची है।
सुपरनॉर्मल

101

आप लगभग साथ हैं dd, लेकिन आप एक कदम याद कर रहे हैं।

sudo umount /dev/sdX
sudo dd if=/path/to/ubuntu.iso of=/dev/sdX bs=4M && sync

sdXआपका usb डिवाइस कहां है (इसे सत्यापित किया जा सकता है lsblk)।

syncबिट महत्वपूर्ण है क्योंकि ddइससे पहले कि लिखने आपरेशन खत्म लौट सकते हैं।


17
उल्लेख करने के लिए +1 sync। इसके बिना, आपको पता नहीं है कि क्या सामग्री वास्तव में कॉपी की गई थी। इसके अलावा, यदि आप जल्दी में नहीं हैं, तो आपको md5sumदोनों फाइलों को केवल दोगुना होना चाहिए ।
डेव

4
हो सकता है कि USB का उल्लेख करने के लायक हो, sudo mkfs.msdos -F 32 /dev/sdXपहले के साथ FAT32 के रूप में स्वरूपित (पुनः) करने की आवश्यकता हो सकती है ?
निमो

10
@ नीमो, क्या इससे कोई फर्क पड़ता है? dd/ dev / sdX किसी भी मौजूदा फ़ाइल सिस्टम को अधिलेखित कर देगा।
mwfearnley

5
syncयहाँ व्यर्थ है। यह केवल फ़ाइल सिस्टम ऑपरेशन को प्रभावित करता है।
punund

3
conv=fdatasync- फ़िनिशिंग से पहले फ़िज़िकल फ़ाइल डेटा लिखना चाहिए, सिंक का ध्यान रखना चाहिए, लेकिन यह सुनिश्चित करने के लिए अच्छा कॉल करें कि डिवाइस पहले अनमाउंट है।
जॉनथॉन हेवेंस

98

टर्मिनल से बूट करने योग्य उबंटू यूएसबी फ्लैश ड्राइव बनाना

  • जगह ubuntu.isoकिसी भी हार्ड डिस्क विभाजन में फ़ाइल।

  • फिर ubuntu.isoटर्मिनल में निम्न कमांड के साथ फाइल माउंट करें :

    sudo mkdir /media/iso/
    sudo mount -o loop /path/to/ubuntu.iso /media/iso
    
  • अपना USB फ्लैश ड्राइव डालें। मेरी ड्राइव है /dev/sdd। यहाँ एक स्क्रीनशॉट है:

GParted स्क्रीनशॉट

  • आपकी ड्राइव स्वचालित रूप से अंदर घुड़सवार हो सकती है /media/। चलिए मान लेते हैं कि इसमें आरोहित किया गया था /media/xxx/

  • /media/iso/नीचे दिए गए आदेश को चलाकर अपने माउंट किए गए USB फ्लैश ड्राइव से सभी फ़ाइलों को कॉपी करें (डॉट को शामिल करना सुनिश्चित करें):

    cp -a /media/iso/. /media/xxx/
    
  • अगला, आपको ldlinux.sysUSB बूट करने योग्य बनाने के लिए अपने USB फ्लैश ड्राइव में फ़ाइल की आवश्यकता है । मेरा USB विभाजन है /dev/sdd1; दर्ज lsblkतुम्हारा क्या देखने के लिए। नीचे दिए गए आदेश चलाएँ:

    sudo apt-get install syslinux mtools
    sudo syslinux -s /dev/sdd1
    
  • /media/xxxमाउंट फ़ोल्डर में नेविगेट करें और isolinuxनिर्देशिका का नाम बदलें syslinux। फिर बदला हुआ फ़ोल्डर में जाएं और फ़ाइल isolinux.cfgका नाम बदलें syslinux.cfg

  • USB ड्राइव से बूटिंग की अनुमति देने के लिए अपने पीसी को रिबूट करें और बूट ऑर्डर को BIOS में बदलें। अब आपका उबंटू यूएसबी फ्लैश ड्राइव बूट हो जाएगा और आप इसे इंस्टॉल कर सकते हैं।

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


3
मैं इस समय कोशिश कर रहा हूं, क्या आप यह निर्दिष्ट कर सकते हैं कि आप क्या / क्यों उपयोग करते हैं: cp -r के बजाय cp -r
मोलडोवियन

2
आप की जरूरत sudoके लिए syslinuxआदेश।
Cammy_the_block

9
यह तरीका मेरे काम नहीं आया। Cp -a देता है: 'cp: प्रतीकात्मक लिंक नहीं बना सकता' /media/xxx/./ubuntu ': ऑपरेशन की अनुमति नहीं है' और इस तरह के अन्य, क्योंकि लक्ष्य वसा 32 है। मैंने अनदेखा करने की कोशिश की ... काम नहीं किया
वह

6
यह ध्यान रखना महत्वपूर्ण है कि USB में एक fat32 फाइल सिस्टम होना चाहिए, अन्यथा syslinux काम नहीं करेगा
Ricardo BRGWeb

2
कंसोल मुझे @ sheß से समान त्रुटि दिखाता है। मैंने फाइलसिस्टम (FAT32) और फ्लैग BOOT का सत्यापन किया।
चॉफोटड्डी 18

40

आपके पास दो विकल्प हैं।

यदि आप एक ग्राफिकल इंटरफ़ेस चाहते हैं, तो usb-creator का उपयोग करें (यह ubuntu repos में है)

यहां छवि विवरण दर्ज करें

यदि आप कमांड लाइन टूल चाहते हैं, तो dd का उपयोग करें

#Replace X accordingly in both commands

sudo umount /dev/sdX
sudo dd if=/path/to/ubuntu.iso of=/dev/sdbX bs=1M

बस सुनिश्चित करें /dev/sdXकि फ्लैश ड्राइव आप उपयोग करना चाहते हैं (यह फ्लैश ड्राइव पर डेटा को नष्ट कर देगा)।

अतिरिक्त जानकारी के लिए https://help.ubuntu.com/community/Installation/FromUSBStick देखें ।


1
मैं केवल कमांड लाइन टूल चाहता हूं, न कि gui टूल (जैसे स्टार्टअप डिस्क क्रिएटर)। ddविधि के अनुसार , केवल 3 फोल्डर और 1 फाइल ही मेरी usb में बनाई गई थी। मैं इसे बूट करने की कोशिश कर रहा हूं। यह operating system not foundत्रुटि को बताता है। जैसे ubninit,menu.c32,ubnpathl.txt,ubnfilel.txt,ldlinux.sysगायब हैं (जो हैं बूट ubuntu usb को बूट करने के लिए बहुत महत्वपूर्ण है)।
अविनाश राज 5

1
मैं ubuntu.iso के साथ dd विधि की कोशिश की और यह काम किया! हालाँकि, USB पर लिखे जाने में बहुत समय लगता है। मुझे आश्चर्य है कि क्या बी एस = 1 एम के लिए खड़ा है। मुझे यह साइट manpages.ubuntu.com/manpages/karmic/en/man1/dd.1.html मिली । अब मुझे आश्चर्य है कि क्या मूल्य बदलने से यूएसबी की नकल तेजी से होगी? और क्या जोखिम हैं .. शायद कोई जानता हो।
मोलडोवियन

4
Bs ब्लॉक आकार है। dd मेमोरी में 1MB डेटा पढ़ेगा और फिर इसे डिस्क पर संपूर्ण रूप में लिखने के लिए आगे बढ़ेगा। एक बहुत छोटे ब्लॉक आकार का उपयोग करके आपको बहुत अधिक सीपीयू ओवरहेड मिलेगा। बहुत बड़े ब्लॉक आकार का उपयोग करने से अप्रत्याशित दुष्प्रभाव हो सकते हैं, जैसे बिना डिस्क गतिविधि और / या बड़े रैम उपयोग के लंबे समय तक रुकना। आईएसओ से डिस्क बनाते समय 1M या 4M आमतौर पर एक अच्छा मूल्य है। ब्लॉक आकार पर अधिक जानकारी: stackoverflow.com/questions/6161823/...
ApolloLV

मुझे लगता है कि मैं एक बूट करने योग्य USB बना रहा हूं, जो मैं अक्सर करता हूं, लेकिन जब मैं ऐसा करता हूं, तो मैं चाहता हूं कि यह सही हो। एक छोटे ब्लॉक आकार में अधिक समय लग सकता है, लेकिन क्या यह एक मुद्दा है? नहीं।
मार्क

2
@Marc - एकमात्र मुद्दा गति है, एक छोटे ब्लॉक का आकार अधिक या कम त्रुटि वाला नहीं है, फिर एक बड़ा ब्लॉक आकार और इस प्रकार एक छोटा ब्लॉक आकार! = "सही किया"। सही का अर्थ है iso के md5sum की जाँच करना और लिखित छवि के md5sum की पुष्टि करना। एक बार जब आप m5dsums की पुष्टि कर लेते हैं तो आप जानते हैं कि यह सही किया गया था।
पैंथर

28

सबसे पहले, USB डिवाइस को अनमाउंट करें और फिर डिवाइस lsblkको सत्यापित करने के लिए उपयोग करें।

कभी-कभी (आमतौर पर पुराने आईएसओ फाइलें) dd पर्याप्त नहीं होती है और पेनड्राइव बूट नहीं होगा। इस स्थिति में, आपको syslinux स्थापित करने की आवश्यकता हो सकती है:

sudo apt-get install syslinux

और फिर निम्नलिखित कमांड चलाएं:

sudo mkfs -t vfat -I /dev/sdX

आप उस अंतिम कमांड को चलाना चाहते हैं /dev/sdXया नहीं /dev/sdX1

फिर, निम्नलिखित आदेशों के साथ आगे बढ़ें:

isohybrid /path/to/file.iso --entry 4 --type 0x1c
dd if='/path/to/file.iso' of=/dev/sdX bs=8M

या, छवि लेखन की प्रगति देखने के लिए:

pv -tpreb /path/to/file.iso | dd of=/dev/sdX bs=8M

या इसके बजाय dd, आप catइसके बजाय उपयोग कर सकते हैं :

sudo -s
cat /path/to/file.iso > /dev/sdX

लिखने के कैश को फ्लश करने के लिए सिंक कमांड जारी करने के लिए याद रखें

sync

web.archive.org/web/20140327085331/https://tails.boum.org/doc/first_steps/installation/manual/linux/index.en.html


मुझे यह उल्लेख करने की आवश्यकता है कि मेरे लिए बाकी सब कुछ विफल रहा, लेकिन यह काम किया - मैंने catकमांड का विकल्प चुना ।
डिजिटल ड्रैकुला

उन लोगों के लिए जो इस बात पर जोर देते हैं कि ddअकेले काफी है, मुझे काम करने के लिए भी इसकी जरूरत है।
14 अक्टूबर को गुइटर सिटी

यदि आप ऐसा टूल चाहते हैं जो ddISO हाइब्रिड और माउंट होने पर उपयोग हो, तो ISO फाइल को कॉपी करें + ISO के bootisoबजाय SYSLINUX को इंस्टॉल करें, इसके बजाय उपयोग करें ।
जूल्स रैंडोल्फ

1
क्या आप बता सकते हैं कि इनमें से प्रत्येक आदेश वास्तव में क्या करता है? क्या डिवाइस पर एक vfat फाइल सिस्टम बनाने की बात है, और फिर तुरंत इसे iso फ़ाइल की सामग्री के साथ अधिलेखित कर दिया? isohybridवास्तव में क्या करता है? क्या यह आईएसओ को किसी तरह से संशोधित करता है?
चेशायरकोव

10

यदि "थर्ड-पार्टी" से आपका मतलब "गुई" है, तो मैं अविनाश राज के जवाब के बाद बूटिसो नाम की एक हल्की स्क्रिप्ट का सुझाव देता हूं , क्योंकि ddयह हमेशा काम नहीं करता है। बड़ा प्लस यह बहुत सुरक्षित है (सिस्टम के साथ गड़बड़ नहीं करने के लिए कई सुरक्षा जांच करता है), आसानी से स्थापित और पोर्टेबल।

इसके अलावा, bootisoदो मोड से चुनने के लिए आईएसओ फाइल का निरीक्षण करेंगे: इमेज-कॉपी ( dd) जब आईएसओ फाइल हाइब्रिड होता है, तो वह यूएसबी-फ्रेंडली होता है। और माउंट- rsync मोड जब आईएसओ फ़ाइल गैर-हाइब्रिड है, तो उस स्थिति में एक SYSLINUX बूटलोडर स्वचालित रूप से स्थापित हो जाएगा यदि समर्थित हो [ स्वचालित व्यवहार के बारे में अधिक विवरण ]।

इसे कैसे उपयोग करे

पहला विकल्प, बस आईएसओ को पहले तर्क के रूप में प्रदान करें और आपको एक सूची से निकाले जाने के बीच ड्राइव का चयन करने के लिए प्रेरित किया जाएगा lsblk:

bootiso myfile.iso

या स्पष्ट रूप से USB डिवाइस प्रदान करें:

bootiso -d /dev/sde myfile.iso

जल्दी स्थापित करें

curl -L https://git.io/bootiso -O
chmod +x bootiso

इसे कार्रवाई में देखें:


1
मैं मानता हूं, यह एक बहुत अच्छी स्क्रिप्ट है जो डरावने बिट्स को प्रक्रिया से बाहर ले जाती है। यहाँ अधिक जानकारी: tecmint.com/create-bootable-usb-in-linux-commandline
kr37

यहां तक ​​कि विंडोज 10 अक्टूबर 2018 के लिए भी इसका समर्थन है क्योंकि यह "wim विभाजन" को "install.wim" फ़ाइल ("wimlib-imagex" कमांड का उपयोग करके) का समर्थन करता है जो कि> 4Gb है और अन्यथा FAT32 पर संग्रहीत नहीं किया जा सकता है।
mevdschee

7
$ dd if=ubuntu-14.04.1-desktop-amd64.iso of=/dev/sdX bs=1MB

बिट के लिए पथ का उपयोग न करें।

  1. cd.Iso फ़ाइल वाले फ़ोल्डर में जाने के लिए कमांड का उपयोग करें
  2. कमांड का उपयोग करें dd if=FILE NAME HERE.iso of=/dev/sdX bs=1MB
  3. जब तक कंसोल आउटपुट कुछ इस तरह दिखता है तब तक प्रतीक्षा करें:

    1028+1 records in
    1028+1 records out
    1028653056 bytes (1.0 GB) copied, 55.4844 s, 18.5 MB/s
    
  4. Usb से बूट करें।

नोट: सुनिश्चित करें कि आप सही डिवाइस पर लिखते हैं एक usb को हमेशा माउंट नहीं किया जाएगा: dev/sdXजहां X कोई भी अक्षर हो सकता है।


2
dd कमांड में bs = 1MB का क्या महत्व है ???
juggernauthk108

1
@ juggernaut1996 कोई नहीं। यह नकल करते समय उपयोग करने के लिए ब्लॉक आकार है। चूंकि कोई गिनती तर्क नहीं दिया गया था इसलिए यह 1MB ब्लॉक में पूरे इनपुट की नकल करेगा। इसे हटाया जा सकता था।
sjbx

"पथ को बिट का उपयोग न करें" एक गलत सूचना है। प्रक्रिया स्वयं किसी भी चरण में प्रतिलिपि किए गए छवि में पथ घटकों को सेंकना नहीं करती है, इसलिए यह अप्रासंगिक है यदि आप अपनी आईएसओ छवि वाले निर्देशिका में नेविगेट करते हैं या सिर्फ पूर्ण पथ देते हैं। इसके अलावा, dd स्टड से भी इनपुट को स्वीकार कर सकता है, इसलिए आप छवि में कोई रास्ता न होने के बारे में सुनिश्चित करने के लिए बस प्रत्येक dd में दो dd पाइप कर सकते हैं।
गाबेर गरमी

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

-5

इसे आज़माएं, और कभी भी मुझे 100+ बार विफल नहीं किया:

कार्ड को प्रारूपित करें:

$ sudo mkfs.vfat -F32 /dev/sdx

ISO छवि माउंट करें:

$ sudo mount ubuntu.iso /mnt

कार्ड के लिए सामग्री की प्रतिलिपि बनाएँ:

$ sudo cp -rvf /mnt/* /SD_CardMountPoint

फिर:

  • isolinuxफ़ोल्डर का नाम बदलेंsyslinux
  • का नाम बदल syslinux/isolinux.cfgदियाsyslinux/syslinux.cfg
  • का नाम बदल syslinux/isolinux.binदियाsyslinux/syslinux.bin
  • Daud syslinux -s /dev/sdx

4
-1। क्या आपने भी इसका परीक्षण किया था? sudo cp -rvf /mnt/* /dev/sdxकाम नहीं करेगा (या कम से कम जो आप करना चाहते हैं वह न करें)। आप किसी कच्चे उपकरण ( /dev/) में फ़ाइलों की प्रतिलिपि नहीं बनाते हैं । इसके बजाय, आपको कार्ड को माउंट करना चाहिए और आईएसओ फाइल की सामग्री को कार्ड पर माउंट करना चाहिए (आरोह बिंदु पर माउंट बिंदु)। और वर्तमान स्वीकार किए गए उत्तर के साथ क्या गलत है जिसका दृष्टिकोण समान है।
gertvdijk
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.