Sanal makineden bir SD karta nasıl erişilir?


64

Linux sanal makinemden bir SD kartı formatlamak istiyorum. Dizüstü bilgisayarımda dahili bir SD kart okuyucum var. VirtualBox ve VMware Player'ı kullanmayı denedim ve Ubuntu 10.04 konusunu kurdum. Hiçbiri SD kart okuyucusunu bir cihaz olarak göstermiyor. SD karta Windows ana bilgisayarından erişebilirim.

SD karta donanım olarak erişmek istediğimden paylaşılan klasörlerin kullanıldığı çözümlerle ilgilenmiyorum (görünmesi gerekiyor /dev).

Temelde BeagleBoard için SD kartı ayarlamak istiyorum , ancak bilgisayarıma fiziksel bir Ubuntu kurmak istemiyorum.


1
Virtualbox misafir eklerini yüklediniz mi?
tumchaaditya

1
Ben de aynı sorunu yaşadım. Aşağıdaki çözümler benim için çalıştı ama esnek değildi. Sanal makinede varsayılan olarak gösterilen bir "USB Micro SD okuyucu" ya yatırım yaptım. Bu, ek işlemler yapmadan kartı takıp çıkarmamı sağladı. Çözüm üzerine bir başka bakış açısı
TheMeaningfulEngineer 23:15

Yanıtlar:


56

Daha yeni MacBook Pro'larda SD kart yuvası artık bir USB cihazı olarak gösterilmiyor. Bu nedenle, tüm karta ham erişim elde etmek için ham aygıtı VM'ye bağlamanız gerekir. Tam dokümantasyon, VirtualBox dokümantasyonunun Advanced Storage Configuration bölümündedir.

Belgelerde açıkça belirtildiği gibi:

Uyarı - Ham sabit disk erişimi yalnızca uzman kullanıcılar içindir. Eski bir yapılandırmanın yanlış kullanılması veya kullanılması , fiziksel diskte toplam veri kaybına neden olabilir . En önemlisi, bölümü şu anda çalışan ana bilgisayar işletim sistemiyle bir konukda başlatmaya çalışmayın. Bu, ciddi veri bozulmalarına yol açacaktır.

Hızlı bir kılavuz olarak, aygıtı bir linux VM'ye bağlama adımları şunlardır:

  1. Ana sisteminizde ham disk blok cihazını tanımlayın

    1. SD kartı yuvaya takın
    2. Bir Terminal açın ve "mount" yazın. SD kartınızdan takılı ses seviyesini tanımlayan bir çıktı göreceksiniz. Sistemimde aşağıdakileri alıyorum

      $ mount
      /dev/disk1 on / (hfs, local, journaled)
      devfs on /dev (devfs, local, nobrowse)
      map -hosts on /net (autofs, nosuid, automounted, nobrowse)
      map auto_home on /home (autofs, automounted, nobrowse)
      /dev/disk2s1 on /Volumes/NO NAME (msdos, local, nodev, nosuid, noowners)`
      
    3. Benim durumumda "NO NAME" (SD ADI) birimi SD karttır, bu yüzden /dev/disk2s1kısmı not ediyorum . Bu özel durumda, s1parça ham cihazdaki bir bölümü (dilimi) temsil eder, bu yüzden daha sonra kullanacağımız /dev/disk2kısım sadece kısımdır.

  2. Disk Utility programını açın ve birimi "Unmount". "Çıkarma" yapmayın. OSX'in otomatik olarak rasgele bir şekilde yeniden yerleştirilebileceğini düşündüğüm sonraki adımlar sırasında sesi bir süre içinde çıkarmanız gerekebileceğini unutmayın.
  3. Şimdi VirtualBox'u, ham aygıtın farkında olacak şekilde Terminal'de aşağıdaki komutla ayarladık.

    1. /path/to/file.vmdkKutunun herhangi bir yere yerleştirilebileceğini unutmayın; ancak, bunu örneğin konuk VM klasöründe saklamak iyi bir fikirdir.~/VirtualBox VMs/guest-vm/sdcard.vmdk
    2. Kullandığımız -rawdiskbölüme (dilim) referans vermediğini, sadece bir bütün olarak blok cihazı kullandığını unutmayın.

      $ VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/disk2
      
  4. Daha sonra, ham diski VirtualBox Kullanıcı Arabirimi içindeki bir konuk VM'ye bağlayacağız

    1. Konuk VM'nin çalışmadığından emin olun.
    2. Konuk VM için ayarlar alanını açın
    3. Araç çubuğundaki "Depolama" üzerine tıklayın
    4. Kontrolörün yanındaki "Sabit Disk Ekle" simgesine tıklayın
    5. "Mevcut diski seç" i seçin
    6. /path/to/file.vmdk3. adımda kullandığınıza gidin ve seçin.
    7. Şimdi Depolama sekmesine dönmeniz ve file.vmdklistede görüşmeniz gerekir .
  5. VM'yi başlatın
  6. Bir GUI'niz olup olmadığına bağlı olarak, SD kartın otomatik olarak takılıp takılmayacağı. Eğer elle monte etmeniz gerekiyorsa, basitçe başka bir standart blok cihazı olarak gösterilir, konuğumda bu / dev / sdb olarak gösterilir.

Güncelleme

Bazı kişilerin ham cihaza adım 3.2 veya 4.6'da erişmekte zorlandığı anlaşılmaktadır. Bazı komutları sudo ile çalıştırma girişimleri, VirtualBox oturum açmış kullanıcınız olarak çalışacağından ve işlenmemiş cihaza doğru bir şekilde veya oluşturulan vmdk dosyasına erişemeyeceğinden yardımcı olmaz.

Onları test etmemiş olmama rağmen, aşağıdaki adımlar yardımcı olacaktır.

  1. OSX'te kullandığınız hesabın, Sistem Tercihleri ​​/ Kullanıcılar bölümünde Yönetici ayrıcalıklarına sahip olduğunu kontrol edin. İşlenmemiş cihazın erişiminin sistemde birincil hesap olması gerektiği de iyi bir ihtimal.
  2. Ham disk izinlerini kontrol et

        $ ls -l /dev/disk2
        brw-r----- 1 jinn staff    14,  5 Aug 26 15:33 /dev/disk2
    

    Bu izinler geçerli giriş yapmış olduğunuz kullanıcı hesabına uymalıdır:

        $ id
        uid=501(jinn) gid=20(staff) ...snip...
    

    Cihazdaki izinler, normal kullanıcı hesabınızın bu cihaza hem okumasını hem de yazmasını sağlar. CİHAZIN SINIRLARINI DEĞİŞTİRMEYİN, NE YAPIĞINIZI KESİNTİSİZ BİLMEYİNİZ.


Güncelleme # 2

OSX Mountain Lion'un cihazı "root: operator" ayrıcalıkları ve 0640 izinleriyle oluşturduğu ortaya çıktı. Ne yazık ki şimdilik bu cihaza erişmenin tek yolu, cihazı her taktığınızda mevcut kullanıcınıza "sudo chown $ USER" kullanmaktır, ancak ne yaptığınızı gerçekten anlamadığınız sürece bu önerilmez. Umarım Apple veya VirtualBox daha uygun bir çözüm bulur.


2
Mountain Lion'da, bunu durdurmak için sdcard'dan diskarbitrationand montaj bölümü var:$ sudo launchctl list | grep diskarbitrationd 188 - com.apple.diskarbitrationd $ sudo kill -SIGSTOP 188 # pauses diskarbitrationd, disabling automount $ sudo kill -SIGCONT 188 # resumes diskarbitrationd, reenabling automount
Ağustos'ta

1
Thanks @kenji, bu Mtn Lion kullanıcıları için harika bir ipucu (automount sorunuyla biraz uğraştım). Benim VirtualBox forumlarında ayrıntılı talimatlar bu ucundan yararlanacak; Buraya ve aşağıya yorumlarınıza bir link ekleyeceğim. Tekrar teşekkürler.
likethesky,

1
Bu kılavuzu izledim ancak izin sorunları vardı, daha sonra cihaz üzerinde bir chmod 777 hazırladım ve iyi çalıştı. Daha fazla detay burada: balage.blogs.balabit.com/2010/10/…
Samantha Catania

2
Görüntüyü Sanal Kutuya Sabit Disk olarak eklemeye çalışırken RESOURCE_BUSY yazılımını aldım. OSX'in SD kart bölümlerini yeniden yerleştirdiğini fark ettim. Aşağıdakileri Yazma Terminalinde (Ana bilgisayardaki)sudo diskutil unmountDisk /dev/<disk path>
Rob

1
1) 2) chown 3) sanal disk oluştur 4) tekrar çıkarmayı onayla 5) VM'ye ekle 6) AGAIN bağlantısını kes 7) VM'yi başlat. - @JinnKo: Bunu cevaba ekleyebilir misin? ya da yapabilir miyim?
Erik Allik

42

Windows kullanıcıları için cevap

  1. SD kart okuyucunuzun DeviceID'sini alın.

    Sürücüde, pencerelerle monte edilmiş bir karta ihtiyacınız olacak.

    Bu komutu gir

    wmic diskdrive list brief
    

    Bunun gibi bir şeye benzemeli:

    C:\Users\Sandy Scott>wmic diskdrive list brief
    Caption                      DeviceID            Model                        Partitions  Size
    WDC WD7500BPKT-75PK4T0       \\.\PHYSICALDRIVE0  WDC WD7500BPKT-75PK4T0       3           750153761280
    O2Micro SD SCSI Disk Device  \\.\PHYSICALDRIVE1  O2Micro SD SCSI Disk Device  1           3964584960
    

    Son cihaz SD kart okuyucusudur, yani Cihaz Kimliği \\.\PHYSICALDRIVE1

  2. SD kartına link dosyasını oluşturun

    Yönetici olarak bir komut penceresi açın

    "C:\Program Files\Oracle\VirtualBox\VBoxManage" internalcommands createrawvmdk -filename "%USERPROFILE%/Desktop/sdcard.vmdk" -rawdisk "\\.\PHYSICALDRIVE1"
    

    Bu, varsayılan yükleme yolunu varsayar - gerekiyorsa değiştirin. (Alıntıların rawdisk argümanının etrafında olduğundan emin olun.)

    .Vmdk dosyası SD karta bir bağlantıdır, ana sisteminizde herhangi bir yere koyabilirsiniz, ancak bu komut rahatlık için masaüstünüze koyar.

  3. JinnKo'nun cevabındaki 4-6. Adımları izleyin, tek küçük ayar, VirtualBox'ı Yönetici olarak başlatmanız gerekmesidir.

  1. Daha sonra, ham diski VirtualBox Kullanıcı Arabirimi içindeki bir konuk VM'ye bağlayacağız
    1. Konuk VM'nin kapalı olduğundan emin olun.
    2. VirtualBox'ın çalışmadığından emin olun
    3. VirtualBox'ı sağ tıklayarak ve "Yönetici olarak çalıştır" ı seçerek başlatın
    4. Konuk VM için ayarlar alanını açın
    5. Araç çubuğundaki "Depolama" üzerine tıklayın
    6. Kontrolörün yanındaki "Sabit Disk Ekle" simgesine tıklayın
    7. "Mevcut diski seç" i seçin
    8. /path/to/file.vmdk3. adımda kullandığınıza gidin ve seçin.
    9. Şimdi Depolama sekmesine dönmeniz ve file.vmdklistede görüşmeniz gerekir .
  2. VM'yi başlatın
  3. Bir GUI'niz olup olmadığına bağlı olarak, SD kartın otomatik olarak takılıp takılmayacağı. Eğer elle monte etmeniz gerekiyorsa, basitçe başka bir standart blok cihazı olarak gösterilir, konuğumda bu / dev / sdb olarak gösterilir.

Bu cygwinkaçış karakterlerini izlemek için almaya çalışıyorsanız diye . Doğru cygwinçözümü alamadım ancak çalışan komutun cmdişe yaramadığını fark ettim cygwin.
TheMeaningfulEngineer 23:15

VirtualBox'ı yönetici olarak başlattığımda makinelerimi göremiyorum ve ayarları değiştiremiyorum. Bunun nedeni muhtemelen yönetici kullanıcı değilim çünkü bunu gerektiren paylaşılan klasörlerdeki bağlantılarla çalışıyorum. Hesap türümü yöneticiye değiştirdikten ve sdcard sürücüsünü ekledikten ve VirtualBox'ı yönetici olarak çalıştırdıktan sonra giriş ekranını geçemiyorum. Sorunu syslog'da bulamadım. Yalnızca sdcard sürücüsü tekrar çıkarıldığında, VirtualBox'ı yönetici olarak çalıştırırken de giriş yapabilirim, ancak tabii ki sd kartı göremiyorum. Bu yüzden benim için çalışmıyor. :(
Frank Breitling

7

SD okuyucunuz USB denetleyicinizi kullanıyorsa, muhtemelen uzantıları kaçırıyorsunuzdur.

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

Dosya> Tercihler altında, resmi izleyin. Eklenen ve indirilen uzantıyı işaret edin.

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

Sanal Makinenizi yeniden başlatın ve USB cihazlarına erişiminiz olmalıdır.


Merhaba, bu çözümü denedim ve sanal kutu uzantısı paketini yükledim ancak yine de başarılı olamadım. Bu herhangi bir fark yaratırsa, macbook bunu yapıyorum. Ayrıca, macbook sistem profilcimde, sd kart okuyucusu USB aygıtları altında listelenmiyor, "kart okuyucusu" adı verilen ayrı bir kategori olarak listeleniyor. Ayrıca, sanal kutuda USB altında listelenen cihazları da görebiliyorum.
Punit Soni

4

Daha yeni MacBook Pro'larda SD kart yuvası artık bir USB aygıtı olarak gösterilmiyor

Bu sorunun üstesinden gelmek için , dahili kart okuyucusu yerine harici bir Usb Hafıza Kartı Okuyucusu (örneğin, USB adaptöründen sd kartı) kullanabilirsiniz. Herhangi bir USB aygıtı gibi kolayca takabilmeniz için sd kartınızı bir USB aygıtı olarak gösterecektir. Bunlar ucuz cihazlardır ve tüm güçlükleri dikkate alarak kabul edilebilir bir çözüm olacaktır.


Bu şimdiye kadarki en zekice fikir, teşekkürler! Hatta etrafta yatan bir USB kart okuyucum vardı ama kullanabileceğimin farkında değildi.
marco.m

4

Kubuntu 15.04, VirtualBox 4.3.26 kullanıyorum

Bu, sd kart aygıtının /dev/mmcbl0ve çıktısının .vdk olacağını varsayar sd-card.vmk:

sudo VBoxManage internalcommands createrawvmdk -filename ./sd-card.vmdk -rawdisk /dev/mmcblk0

Bunun izinleri düzeltmenin en iyi yolu olduğundan emin değilim, ancak çalıştı:

sudo chmod 777 /dev/mmcblk0
sudo chmod 777 ./sd-card.vmdk

Şimdi VM Ayarları'na gidin, Depolama'yı seçin, Denetleyici: Sata'yı tıklayın, Sabit Disk Ekle simgesine tıklayın, .vdk'nizi seçin (bu durumda sd-card.vmdk)


3

JinnKo'nun çözüme kavuştuğu bir çok sorun yaşadım, çoğunlukla Mountain Lion'da olduğum için (OS X 10.8) ... Ama yardımlarıyla sorunları çözdüm.

Tam çözüm burada ayrıntılı olarak açıklanmıştır .

Ancak, benim çözümümün özü - Mountain Lion kullanıcıları için - şu şekildedir (yukarıdaki JinnKo'nun adımlarını kullanın, ancak 'VBoxManage internalcommands createrawvmdk [...]' komutunu çalıştırmadan önce buraya adım atın (yani, onun arasında adım 2 ve 3):

** Özellikle Mtn Lion için ** Bu cihazın sahibi olduğunuzdan emin olun. 10.8 Mtn Lion'da muhtemelen olmadığını göreceksiniz. Yaparak kontrol edin:

ls -l /dev/disk*

'*' İle, TÜM disk cihazlarınızı göreceksiniz, ayrıca şunları da yapabilirsiniz: ls -l / dev / diskX, sadece 'X' i görmek için, örneğin, yaptım:

ls -l /dev/disk5

Mtn Lion'da (10.8.x) şöyle bir şey göreceksiniz:

brw-r----- 1 root operator 1, <today's date/time> /dev/diskX

'X' cihazınızın numarasıdır, / dev / disk5'teki '5' gibi ...

Lion (10.7.x), Snow Leopard (10.6.x) veya belki de OS X'in önceki sürümlerinde, kullanıcı adınız 'brad' ise - muhtemelen şöyle bir şey göreceksiniz:

brw-r----- 1 brad operator 1, <today's date/time> /dev/diskX

'X', cihaz numaranız olduğu yerde, / dev / disk5'teki '5' gibi ... Eğer sahipseniz, o zaman herkes iyi, burada yapılacak hiçbir şey yok, bir sonraki adıma, yani, createrawvmdk adıma gidin ( @ JinKo 'in büyük talimatları yukarıdaki).

Sahibi değilseniz (ancak 'root' veya başka bir kullanıcı ise), (a) bu yönetici kullanıcısı olarak oturum açın veya (b) aşağıdakileri yapın (tekrar, doğru cihaz numarasını / harfini kullandığınızdan emin olun). İşte!):

* DİKKAT * Aşağıda, yalnızca sabit disklerinde veya flash depolama sürücülerindeki verileri kalıcı olarak imha etme riski olanlar için verilmiştir . DO NOT sen ne yaptığını biliyor emin değilseniz bunu yapın:

sudo chown <your username> /dev/disk5
sudo chown <your username> /dev/disk5s1

* DİKKAT * DO NOT sen ne yaptığını biliyor emin değilseniz bunu. Yukarıdakiler, yalnızca sabit disklerinde veya flash depolama sürücülerindeki verileri kalıcı olarak imha etmek isteyenlere yöneliktir.

Bunu dilimlerinizin TÜMÜ için yapmanız gerekecektir (s1, s2, s3, ... ancak birçoğu vardır). Örneğin, kullanıcı adım 'brad', öyleyse yaptım:, sudo chown brad /dev/disk5sonra sudo chown brad /dev/disk5s1, sonra için s2ve s3(zaten mevcut 3 bölüm veya dilim bulunduğundan).

SD kartı bölümlere ayırmadıysanız, yalnızca bir sudo chown <your username> /dev/diskXkez yapmanız gerekebilir (dilimler / bölümlerden hiçbirini yapmadan)

Umarım bu, diğer bazı fakir Mtn Lion kullanıcılarına yardımcı olur!


Mükemmel çözüm Bu yazı olmadan kaybolmuş olurdum. Çok teşekkür ederim!
ggutenberg

1

Bunu şimdiye kadar bir USB kart okuyucusuyla bile doğrudan yapmanın bir yolunu bulmakta başarısız oldum ( /dev/dm-1beklenenden çok kartı taktı /dev/mmcblk1).

Çalışma ortamım VirtualBox’da 4 GB’lık bir sanal disk oluşturmaktı. Bu daha sonra (as /dev/sdb) belgelendiği gibi bir BeagleBoard Ubuntu kurulumunu alabilir.

Daha sonra VM'yi kapattım, onu RAW DD dosyasına dönüştürdüm ve DD'yi karta koymak için kullandım: (ana bilgisayarda Mac'te):

VBoxManage clonehd UbuntuBeagleImage.vdi UbuntuBeagleImage.dd --format RAW
sudo dd if=UbuntuBeagleImage.dd of=/dev/rdisk(NUMBER) bs=1m

( /dev/disk2benim durumumda, ancak yanlış anlama olarak triplecheck sabit disk sürücünüze zarar verebilir).

ddKomut yaklaşık 1 saat 20 dakika sürdü!

Umarım bu yardımcı olur. Hala daha kolay ve daha hızlı bir yol için çalışıyorum - 600 MB işletim sistemi için 4 GB veri aktarmamız gerekmiyor.


0

Benim için çözüm açılma için USB cihazı SD kart kullanılarak oldu
Devices -> USB devices ->My card reader,
ve birkaç saniye sonra yeni diskler benim VM görünür.

Ondan önce VirtualBox Extensions Paketi kurdum.


0

"Virtual Box Guest Additons CD" dosyalarını kurdum, ancak SD kart okuyucum Windows XP Sanal Makinemde gösterilmiyordu. Ben tarafından mayın çalışma elde edebildi sağlayan sonra sanal Kutusuna USB cihazını ve yeniden başlatma Virtual Machine.


0

Kobaltz'in dediği gibi. USB 2.0 ve 3.0 sürümlerini desteklemek için Sanal Uzantı Paketini kurmanız gerekir, 5.2.22 Oracle VM VirtualBox Uzantı Paketi'ni yükledim ve Sanal Kutu indirme sayfasından indirebilirsiniz. Dosyayı indirdikten sonra doğrudan devam edip yükleyebilirsiniz, aynı şey Sanal Kutu uzantılarınıza eklenecektir.

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

Ayrıca, SD kartınızı Sanal Kutumuzdaki cihaz filtrelerine de eklemelisiniz, lütfen Ayarlar -> USB -> Ekli SD kartını ekle seçeneğine tıklayın.

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

Artık SD kartınıza Filtre'de erişebileceksiniz.

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

Dosyalara gidin ve SD kart klasörlerini görün (Ubuntu Linux Dağıtımını kullanıyorum)

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


0

Macos kullanan ve önceki cevapları takip eden herkes için, izin sorunu nedeniyle sd kartına hala erişemiyorsanız,

sudo ile virtualbox'ı çalıştırın.

sudo VirtualBox

Vm dosyalarına giden yolun farklı olduğuna dikkat edin, benim durumumda:

/private/var/root/VirtualBox\ VMs/$VM_NAME/

Bu hala işe yaramazsa, sd kart diskinin sahibini ve erişimini sırasıyla kullanıcı hesabınıza ve 666'ya değiştirin.

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.