Terminalden önyüklenebilir Ubuntu USB flash sürücü nasıl oluşturulur?


353

YUMI , Unetbootin , Startup Disk Creator , vb. Üçüncü taraf uygulamaları kullanmadan terminalden önyüklenebilir bir Ubuntu USB flash sürücü oluşturmanın bir yolu var mı?

Yöntemiyle önyüklenebilir bir Ubuntu flash sürücü oluşturmaya çalıştım dd,

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

USB diskte dosyalar oluşturur, ancak USB diskini önyüklemeye çalıştığımda Operating System Not Foundhata veriyor .


USB flash sürücünüzün monte OLMADIĞINDAN emin olmalısınız. Lsblk ile kontrol edin. Gerekirse, sudo umount / dev / sdb yapın (muhtemelen sdb1, sdb2). Ekle; eko $? dd kopyalama komutundan sonra. Öyleyse: sudo dd ise = ... / = ... bs = 4M; Eko mu? Komut sona ererse, döndürülen değer 0 olmalıdır.

Adımlarınızı follwed, ama aynı zamanda yarattığı aynı dosyaları oluşturur.Öncelikle bir linux os önyükleme önemli olan sudo umount /dev/sdb sudo dd if=/path/to/ubuntu.iso of=/dev/sdb bs=1Mherhangi bir ubninit,ldlinux.sys,etcdosya oluşturmaz .
Avinash Raj

Grubun USB diskinin MBR'sine son adımı olarak yüklerdim.
Elder Geek

2
En kolay yerleşik araçlar terminalini kullanarak yolu kullanmaktır ddburada açıklandığı gibi. Tüm hibrit iso dosyaları ile çalışır. Ama ddtehlikeli bir araçtır çünkü soru sormadan yapmasını istediğin şeyi yapar. Bu yüzden aile resimlerini silmeyi söylersen ... ve bu küçük bir yazma hatası. Birçok araç daha güvenlidir. Hedef sürücüyü tanımlamanıza ve seçmenize yardımcı olurlar ve doğru sürücüye yazacağınızı iki kez kontrol edebileceğiniz son bir kontrol noktası sağlarlar . Bunların çoğu GUI araçlarıdır, bazıları da metin modunda çalışabilir, örneğin mkusb-dus.
sudodus

1
Aşağıdaki bağlantıda, dahili bir sürücünün yanlışlıkla üzerine yazıldığı bir örnek gösterilebilir, ddönyüklenebilir bir Ubuntu USB flash sürücü oluşturmak için bir komut satırı kullanıldığında, askubuntu.com/questions/982552/accidentally-did-dd-dev- sda
sudodus

Yanıtlar:


431

Kullanabilirsiniz dd.

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

Nerede <?><?>bir sayı ile biten bir mektup, çalıştırarak açın bakın lsblk.

Gibi bir şey görünecek

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'in bağlantısını keserdim.

Ardından, sonraki (bu yıkıcı bir komuttur ve tüm USB sürücüsünü iso içeriğiyle siler, bu yüzden dikkatli olun):

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

input.isogiriş dosyası nerede ve /dev/sd<?>yazdığınız USB cihazıdır (USB'nizin lsblkne <?>olduğunu bulmak için tüm sürücüleri görmek için çalıştırın ).

Bu yöntem hızlı ve beni asla başarısız olmadı.


EDIT: Mac'te olanlar için burada bitenler için küçük harf kullanın bs=4m:

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

EDIT: USB sürücü önyüklemediği takdirde (bu başıma geldi), bunun nedeni, hedefin sürücü yerine sürücüdeki belirli bir bölüm olmasıdır. Bu yüzden hedef / dev / sdc olmalı ve dev / sdc olmamalı. <?>Benim için / dev / sdb idi.

Referans: https://superuser.com/a/407327 ve https://askubuntu.com/a/579615/669976


13
benim için çalışmıyor.
Avinash Raj

7
Gerçekten mi? Yolunu ve USB sürücünüz için doğru / dev dahil doğru .iso dosya adına sahip olduğunuzdan emin misiniz? Nasıl başarısız olur? Bir hata mesajı var mı, yoksa önyükleme işlemi başarısız mı? .İso'nun bozuk olmadığından emin misin?
Marc

8
Bozuk bir .iso olabilir. Kontrol ettin mi? Eğer Iso öğenin kopyasını belli aslında edilir Are olan önyüklenebilir?
Marc

5
Orijinal soru ve en çok cevaplanan cevap, bu yöntemin kendisi için işe yaramadığını söyleyenle aynı kişi. ;-) Benim için onaylı cevap işe yaramıyor ve bu bir. :-) Yükseltme.
Drachenfels

20
status=progressKomut satırına a eklemek de, kopyaların ne kadarının kaldığını görmek için yararlıdır.
Supernormal

101

Neredeyse oradasın dd, ama bir adımı kaçırıyorsun.

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

sdXUSB cihazınız nerede (bu doğrulanabilir lsblk).

syncBit kadar önemlidir ddyazma işlemi tamamlanmadan önce dönebilirsiniz.


17
Bahsetmek için +1 sync. Onsuz, içeriğin gerçekten kopyalanıp kopyalanmadığı konusunda hiçbir fikriniz yok. Ayrıca, aceleniz yoksa, md5sumher iki dosyayı da iki kat emin olmak için yapmanız gerekir .
Dave,

4
Belki USB'den bahsetmeye değer, sudo mkfs.msdos -F 32 /dev/sdXilk önce FAT32 olarak yeniden biçimlendirilmek gerekebilir mi?
Nemo,

10
@Hayır, bunun bir fark yaratması mümkün mü? dd/ dev / sdX, varolan herhangi bir dosya sisteminin üzerine yazacaktır.
mwfearnley

5
syncburada anlamsız. Sadece dosya sistemi işlemlerini etkiler.
14

3
conv=fdatasync- finiş işleminden önce çıktı dosyası verilerini fiziksel olarak yazmalı eşitleme işlemine dikkat etmelidir, ancak önce cihazın bağlantısının kaldırıldığından emin olmak için iyi bir çağrı yapın.
Johnathon Havens,

98

Terminalden önyüklenebilir Ubuntu USB flash sürücü oluşturma

  • Yerleştirin ubuntu.isosabit disk bölümlerinin dosyayı.

  • Ardından ubuntu.isodosyayı aşağıdaki komutlarla terminalde toplayın:

    sudo mkdir /media/iso/
    sudo mount -o loop /path/to/ubuntu.iso /media/iso
    
  • USB flash sürücünüzü yerleştirin. Benim sürücüm /dev/sdd. İşte bir ekran görüntüsü:

GParted ekran görüntüsü

  • Sürücünüz otomatik olarak içeriye monte edilebilir /media/. İçine monte edildiğini varsayalım /media/xxx/.

  • /media/iso/Aşağıdaki komutu çalıştırarak tüm dosyaları takılı USB flash sürücünüze kopyalayın (noktayı eklediğinizden emin olun):

    cp -a /media/iso/. /media/xxx/
    
  • Ardından, ldlinux.sysUSB'yi önyüklenebilir hale getirmek için USB flash sürücünüzdeki dosyaya ihtiyacınız vardır . USB bölümüm /dev/sdd1; lsblksenin olanı görmek için gir . Aşağıdaki komutları çalıştırın:

    sudo apt-get install syslinux mtools
    sudo syslinux -s /dev/sdd1
    
  • /media/xxxMount klasörüne gidin ve isolinuxdizini olarak yeniden adlandırın syslinux. Sonra yeniden adlandırıldı klasöre gidin ve dosyayı yeniden adlandırmak isolinux.cfgiçin syslinux.cfg.

  • Bir USB sürücüden önyüklemeye izin vermek için PC'nizi yeniden başlatın ve önyükleme sırasını BIOS'ta değiştirin. Şimdi Ubuntu USB flash sürücünüz önyükleme yapacak ve yükleyebilirsiniz.

Bu yöntem, sadece Ubuntu için değil, herhangi bir Linux dağıtımı için çalışacaktır. Bir Linux USB flash sürücü oluşturmak için herhangi bir üçüncü taraf yazılımı yüklemeniz gerekmez .


3
Şu anda çalışıyorum, lütfen neden / neden kullandığınızı belirtebilir misiniz: cp -r yerine cp -a
moldovean

2
İhtiyacınız sudoiçin syslinuxkomuta.
Cammy_the_block

9
Bu yöntem benim için işe yaramadı. Cp -a şunları verir: 'cp: sembolik bağlantı oluşturamaz' /media/xxx/./ubuntu ': İşleme izin verilmiyor' ve benzeri şeyler, çünkü hedef yağdır32. Bunu görmezden geldim ... işe yaramadı
o

6

2
Konsol, bana @ sheß ile aynı hatayı gösteriyor. Dosya sistemini (FAT32) doğruladım ve BOOT'u işaretledim.
Chofoteddy

40

İki seçeneğin var.

Grafik bir arayüz istiyorsanız, usb oluşturucuyu kullanın (ubuntu depolarında)

görüntü tanımını buraya girin

Bir komut satırı aracı istiyorsanız, dd kullanın.

#Replace X accordingly in both commands

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

Sadece /dev/sdXkullanmak istediğiniz flash sürücünün olduğundan emin olun (flash sürücüdeki verileri yok edecektir).

Ek bilgi için https://help.ubuntu.com/community/Installation/FromUSBStick adresine bakın .


1
Ben sadece komut satırı araçlarını istiyoruz değil gui aracı (başlangıç disketi yaratıcısı gibi) için .According ddyöntemle, sadece 3 klasör ve 1 dosya ı diyor önyükleme çalışırken benim usb.While oluşturulmuş operating system not foundgibi error.Files ubninit,menu.c32,ubnpathl.txt,ubnfilel.txt,ldlinux.sysolan eksik ( ubuntu usb canlı önyükleme için çok önemli).
Avinash Raj

1
Dd yöntemini ubuntu.iso ile denedim ve işe yaradı! USB'ye yazılması çok zaman alıyor. Bs = 1M'nin ne anlama geldiğini merak ediyorum. Bu siteyi manpages.ubuntu.com/manpages/karmic/en/man1/dd.1.html olarak buldum . Şimdi, değerin değiştirilmesinin USB'ye daha hızlı kopyalanmasını sağlayıp sağlayamayacağını merak ediyorum. Ve riskleri nelerdir .. belki birisi bilir.
moldov

4
Bs blok büyüklüğüdür. dd belleğe 1 MB veri okuyacak ve daha sonra diske bir bütün olarak yazmaya devam edecektir. Çok küçük bir blok boyutu kullanarak, çok fazla CPU ek yükü elde edersiniz. Çok büyük bir blok boyutu kullanmak beklenmedik yan etkilere neden olabilir; örneğin, disk etkinliği ve / veya büyük RAM kullanımı olmadan daha uzun duraklamalar. 1M veya 4M, genellikle ISO'dan bir disk yaparken iyi bir değerdir. Blok ebatları hakkında daha fazla bilgi: stackoverflow.com/questions/6161823/…
ApolloLV

Önyüklenebilir bir usb yapmanın nadiren yaptığım bir şey olduğunu düşünüyorum, ancak yaptığımda doğru yapılmasını istiyorum. Daha küçük bir blok boyutu daha uzun sürebilir, ancak bu bir sorun mu? Hayır!
Marc

2
@Marc - Tek sorun hız, daha küçük bir blok büyüklüğü daha fazla veya daha az hataya maruz kalmaz, daha büyük bir blok büyüklüğüne ve böylece daha küçük bir blok büyüklüğüne! = "Doğru yapılır". Doğru yapıldığında, iso'nun md5sumunu kontrol etmek ve yazılı görüntünün md5sumunu onaylamak anlamına gelir. M5dsums'i onayladığınızda doğru yapıldığını bilirsiniz.
Panter

28

İlk önce, USB cihazını çıkarın ve ardından lsblkcihazı doğrulamak için kullanın .

Bazen (genellikle eski iso dosyaları) gg yeterli değildir ve pendrive önyükleme yapmaz. Bu durumda, syslinux kurmanız gerekebilir:

sudo apt-get install syslinux

ve sonra aşağıdaki komutları çalıştırın:

sudo mkfs -t vfat -I /dev/sdX

Sen o son komutunu çalıştırmak istediğiniz /dev/sdXve değil /dev/sdX1 .

Ardından, aşağıdaki komutlarla devam edin:

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

veya, resim yazma ilerlemesini görmek için:

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

veya yerine dd, kullanabilirsiniz cat:

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

Yazma önbelleğini temizlemek için senk komutunu vermeyi unutmayın

sync

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


Benim için her şeyin yolunda gitmediğini söylemeliyim, ama bu işe yaradı - catemri seçtim .
Dijital Drakula

Yalnızlığın ddyeterli olduğu konusunda ısrar edenler için , bunun için de çalışmam gerekiyordu.
GuiRitter

ddISO hibrid ve mount olduğunda kullanılan bir araç istiyorsanız , ISO dosyasını kopyalayın ve ISO olmadığında SYSLINUX'i kurun, bootisobunun yerine kullanın.
Jules Randolph

1
Bu komutların her birinin gerçekte ne yaptığını açıklayabilir misiniz? cihaza bir vfat dosya sistemi yapmanın ve ardından derhal iso dosyasının içeriğiyle yazmanın amacı nedir? isohybridAslında ne yapar ? ISO'yu bir şekilde değiştiriyor mu?
cheshirekow

10

"Üçüncü taraf" derken "gui" demek istiyorsan, Avinash Raj'ın cevabından sonra bootiso adında hafif bir senaryo öneririm , çünkü ddher zaman işe yaramaz. Büyük artı, çok güvenli (sistemle uğraşmamak için birçok güvenlik kontrolü gerçekleştiriyor), kurulumu kolay ve taşınabilir.

Ayrıca, bootisoISO dosyasını iki moddan birini seçecek şekilde inceleyecektir: ddISO dosyası hibrit olduğunda, yani USB uyumlu olan image-copy ( ). Ayrıca, ISO dosyası hibrit olmadığında mount-rsync modu da desteklenirse, otomatik olarak SYSLINUX önyükleyici yüklenir [ otomatik davranış hakkında daha fazla bilgi ].

Bu nasıl kullanılır

İlk seçenek olarak, ISO’yu yalnızca ilk argüman olarak verin; ayıkladığınız listeden bir sürücü seçmeniz istenir lsblk:

bootiso myfile.iso

Veya açıkça USB aygıtını sağlayın:

bootiso -d /dev/sde myfile.iso

Hızlı kurulum

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

Hareket halinde görün:


1
Katılıyorum, bu süreçten korkunç bitleri alan çok hoş bir senaryo. Daha fazla ayrıntı burada: tecmint.com/create-bootable-usb-in-linux-commandline
kr37

Hatta "10.Grup 2018" desteği de vardır, çünkü "watib-imagex" komutunu kullanarak>> 4Gb olan "install.wim" dosyasını "wim bölme" yi destekler (> "wimlib-imagex" komutunu kullanarak).
mevdschee

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

Bit yolunu kullanmayın.

  1. cd.İso dosyasını içeren klasöre ulaşmak için komutu kullanın.
  2. komutu kullan dd if=FILE NAME HERE.iso of=/dev/sdX bs=1MB
  3. Konsol çıktısı şunun gibi görünene kadar bekleyin:

    1028+1 records in
    1028+1 records out
    1028653056 bytes (1.0 GB) copied, 55.4844 s, 18.5 MB/s
    
  4. USB'den önyükleme yapın.

Not: Bir cihaza her zaman monte edilmeyecek doğru cihaza yazdığınızdan emin olun: dev/sdXX, herhangi bir harf olabilir.


2
ds komutunda bs = 1MB değeri nedir ???
juggernauthk108

1
@ juggernaut1996 yok. Kopyalarken kullanılacak blok boyutu. Sayım argümanı sağlanmadığından, girişin tamamını 1 MB'lık bloklar halinde kopyalar. Çıkarılabilir.
sjbx

"Yolu bitlemek için kullanmayın" yanlış bir bilgidir. Sürecin kendisi, yol bileşenlerini kopyalanan görüntünün içine herhangi bir adımda pişirmez, bu nedenle ISO görüntünüzü içeren dizine giderseniz ya da tam yolunu verirseniz, bunun önemi yoktur. Dahası, dd de stdin'den girdi kabul edebilir, böylece görüntüde hiçbir yolun açılmadığından emin olmak için iki gd'yi birbirinden geçirebilirsiniz.
Gabor Garami

Bu, yalnızca bugünlerin büyük bir çoğunluğunu dolduran hibrit ISO'lar için işe yarar, ancak UltimateBootCD gibi göze çarpan istisnalar vardır. Yerine bootisokullanın.
Jules Randolph

-5

Bunu dene ve 100'den fazla kez asla başarısız olmadı:

Kartı formatlayın:

$ sudo mkfs.vfat -F32 /dev/sdx

ISO görüntüsünü bağlayın:

$ sudo mount ubuntu.iso /mnt

İçeriği karta kopyala:

$ sudo cp -rvf /mnt/* /SD_CardMountPoint

Sonra:

  • isolinuxklasörü yeniden adlandırsyslinux
  • adını syslinux/isolinux.cfgdeğiştirsyslinux/syslinux.cfg
  • adını syslinux/isolinux.bindeğiştirsyslinux/syslinux.bin
  • Çalıştırmak syslinux -s /dev/sdx

4
-1. Bunu test ettin mi? sudo cp -rvf /mnt/* /dev/sdxişe yaramayacak (veya en azından niyetinde olduğunuzu yapmayın). Dosyaları ham aygıta ( /dev/) kopyalamıyorsunuz . Bunun yerine, kartı monte etmeli ve ISO dosyasının içeriğini karta kopyalamalısınız (montaj noktasına montaj noktasına). Ve aynı yaklaşıma sahip olan mevcut kabul edilmiş cevapta yanlış olan şey.
gertvdijk
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.