Strona 1 z 2

Qemu i pendrive jako dysk twardy

: 26 stycznia 2011, 09:48
autor: giaur
Witam,

Próbuję zrobić następującą rzecz - instalację Debiana x64 na pendrive. W tym celu stworzyłem nową maszynę wirtualną - wszystko bardzo fajnie zadziałało - instalator systemu 64 bitowego uruchomił się bez żadnych problemów, bez problemów też wykrył sieć itd..

Problem w tym, że pod Qemu instalator "nie chce" zobaczyć włożonego pendrive jako dysku. Samo usb działa, instalator też zaproponował załadowanie modułu usb_storage, ale przy wykrywaniu dysków napisał mi, że nie wykryto żadnego dysku. Używam graficznego konfiguratora Qemulator.

Niestety jestem zmuszony robić to na maszynie wirtualnej z kilku powodów. Po pierwsze, w fizycznym komputerze grub mi się zainstaluje nie na pendrive tylko na moim fizycznym dysku (a z laptopa nie chce mi sie dysku wyciagac) - to akurat pewnie dałoby się obejść, a po drugie mam dostep do netu tylko przez wifi, a tej karty instalator nie zobaczy.

Jaką opcję podać do qemu żeby zobaczył pena jako dysk? Samo usb działa, nawet przy starcie instalatora mam komunikaty o urządzeniu usb.

Nie mogę użyć innej maszyny wirtualnej, bo qemu to jedyna która pozwoliła mi na uruchomienie instalatora 64-bitowego na moim procesorze. Z drugiej strony, wydajność bez kvm jest tak tragiczna że używanie tego jest zupełnie bez sensu - ale instalacje dałoby radę przeprowadzić.

: 27 stycznia 2011, 18:39
autor: saturno
1. Jest jeszcze coś takiego jak LILO i wbrew pozorom ma się dobrze, a w niektórych przypadkach jest lepsze od GRUB-a.

2. Napisz konkretnie co chcesz osiągnąć, bo mimo że padło mnóstwo słów to wszystko nie trzyma się kupy, a może rzecz którą chcesz osiągnąć jest niemożliwa do zrealizowania.
Skoro zdecydowałeś się na instalację na nośniku przenośnym więc prawdopodobnie chcesz system używać również i na innych komputerach, a jeśli tak to jak miałby w takich przypadkach wyglądać procedura uruchamiania systemu?

3. Przez Qemu system instaluje się na wirtualnym dysku, a ty chcesz instalować tak jak na fizycznym (bezpośrednio), czy tak?

4. Wytłumacz jeszcze o co chodzi z tym USB.
Qemu widzi tylko, to co mu dasz zobaczyć.
Jeśli instalujesz na dysku wirtualnym, to GRUB również zainstaluje się na dysku wirtualnym.
Jeśli natomiast w co wątpię instalator widzi pena dwa razy, tzn. jako dysk wirtualny i jako fizyczne urządzenie wpięte pod USB i to w jakiś sposób zakłóca instalację, to w opcjach Qemu wyłącz USB na czas instalacji i tyle.

: 27 stycznia 2011, 18:57
autor: giaur
Napisz konkretnie co chcesz osiągnąć, bo mimo że padło mnóstwo słów to wszystko nie trzyma się kupy
Chcę zainstalować system na dysku usb (pendrive) podłączonym do maszyny wirtualnej qemu.
Skoro zdecydowałeś się na instalację na nośniku przenośnym więc prawdopodobnie chcesz system używać również i na innych komputerach, a jeśli tak to jak miałby w takich przypadkach wyglądać procedura uruchamiania systemu?
O to się nie przejmuj. Mam Linuksa na kilku nośnikach pendrive i nigdy jeszcze nie doświadczyłem żadnych problemów z uruchomieniem, na żadnym komputerze.
Przez Qemu system instaluje się na wirtualnym dysku, a ty chcesz instalować tak jak na fizycznym (bezpośrednio), czy tak?
Za pomocą maszyny wirtualnej instaluje się system na dysku, który jest widoczny dla tej maszyny. Czy jest to dysk wirtualny, czy fizyczny podłączony przez usb to nie ma znaczenia. Wielokrotnie przetestowane na Vmware. Tylko tak jak napisałem - vmware na moim sprzęcie nie potrafi uruchomić instalatora 64-bitowego.

Jeśli instalujesz na dysku wirtualnym, to GRUB również zainstaluje się na dysku wirtualnym.
Grub zainstaluje się na zawsze na pierwszym dysku stałym (jeśli jest więcej niż jeden dysk) - nieważne czy to jest dysk wirtualny czy nie. Dlatego nie używam do tego mojego laptopa - bo mi nadpisze gruba na dysku w laptopie, a odpinać dysku mi się nie chce.
Jeśli natomiast w co wątpię instalator widzi pena dwa razy, tzn. jako dysk wirtualny i jako fizyczne urządzenie wpięte pod USB i to w jakiś sposób zakłóca instalację, to w opcjach Qemu wyłącz USB na czas instalacji i tyle.
Dysk wirtualny to dysk wirtualny - zapisany w pliku obrazu. Natomiast dysk usb podłączony do maszyny (nieważne czy wirtualnej czy fizycznej) jest widziany jako urządzenie sdaX i nieważne czy to pendrive czy inny nośnik usb. Pod vmware tak jest, pod qemu instalator dysku nie zobaczył.
a może rzecz, którą chcesz osiągnąć jest niemożliwa do zrealizowania.
Gdyby to było niemożliwe to bym nie pytał - wielokrotnie robiłem to na vmware i gdyby nie to że potrzebuję 64 bitów, nie zawracałbym sobie głowy qemu

: 27 stycznia 2011, 20:58
autor: saturno
Na 99,99% tego co chcesz zrobić nie da się uzyskać używając nakładek graficznych na Qemu. Musisz działać w konsoli poleceniami, których raczej w podręczniku systemowym nie znajdziesz.
Konkretnych poleceń nie podaję, bo Qemu to nie zabawka i jak się pomylisz może "wyparować" zawartość dysku twardego (fizycznego dysku twardego!).

Tyle ode mnie w tym temacie.

: 27 stycznia 2011, 21:21
autor: fnmirk
Panowie, spokojnie.

: 27 stycznia 2011, 21:31
autor: DaVidoSS

: 28 stycznia 2011, 02:09
autor: giaur
Panowie ale o czym wy do mnie piszecie? Chcę tylko podłączyć dysk usb do maszyny wirtualnej qemu. Czy to zadanie naprawdę jest tak skomplikowane? Nieważne już co chcę z tym zrobić - powtarzam: chcę podłączyć dysk usb do maszyny wirtualnej qemu. Na takiej samej zasadzie, jak gdybym wetknął pena do usb w prawdziwym komputerze. I tak samo jak np w Vmware - pen jest odmontowywany z hosta, a pojawia się w maszynie wirtualnej. To przecież nie może być zadanie aż tak skomplikowane.

Gdy to osiągnę, instalator zobaczy pena jako dysk na którym mogę instalować system - tak samo, jak było w Vmware. Lepiej już nie potrafię tego wyjaśnić. Naprawdę, proszę przeczytajcie uważnie w czym jest problem i wtedy odpisujcie. Doceniam chęć pomocy ale proszę także o czytanie ze zrozumieniem (to uwaga do użytkownika saturno).
DaVidoSS pisze:Może coś stąd pomóc może...
http://manual.aptosid.com/pl/bios-freed ... #bois-prep

Dzięki to może się przydać. Spróbuję postąpić analogicznie - zamontować pena jako dysk i zamiast free-dos odpalić instalkę debiana. Tylko czemu nie można "normalnie" podłączyć urządzenia usb do maszyny w qemu? To sam instalator powinien wykryć go jako dysk. Chyba ze po prostu trzeba mu koniecznie "powiedzieć" czym "ma być" ten pen - w przykładzie z freedosem to będzie hda. Ale dziwna to filozofia.

: 29 stycznia 2011, 20:10
autor: saturno
giaur pisze:Chyba ze po prostu trzeba mu koniecznie "powiedzieć" czym "ma być" ten pen
Pisałem o tym:
saturno pisze: Qemu widzi tylko, to co mu dasz zobaczyć.
giaur pisze:w przykładzie z freedosem to będzie hda. Ale dziwna to filozofia.
/dev/hda lub /dev/sda to dysk twardy
W ten sposób możesz zniszczyć zawartość twardego dysku!
W podanym przykładzie wyraźnie pisze, że pendrive to: /dev/sdb
Jednak żadna to reguła bo autor wziął pod uwagę tylko swoją konfigurację, powinno być podane żeby używać takiej samej nazwy jaka jest widoczna w systemie bazowym.

: 31 stycznia 2011, 08:56
autor: giaur
/dev/hda lub /dev/sda to dysk twardy
W ten sposób możesz zniszczyć zawartość twardego dysku!
W podanym przykładzie wyraźnie pisze, że pendrive to: /dev/sdb
Jednak żadna to reguła bo autor wziął pod uwagę tylko swoją konfigurację, powinno być podane żeby używać takiej samej nazwy jaka jest widoczna w systemie bazowym.
Domyśliłem się tego, że w przykładzie:

Kod: Zaznacz cały

qemu -hda /dev/sdb -cdrom /path/to/fdbasecd.iso -boot d
hda to dysk, który będzie widoczny w maszynie wirtualnej, a /dev/sdb to pendrive, na który ten dysk ma "wskazywać" i chyba jasne, że jeśli zamiast pendrive podam tam mój fizyczny dysk to mogę zniszczyć na nim dane.

Chodzi o to, że w innych maszynach wirtualnych wystarczy "podłączyć" urządzenie usb do maszyny wirtualnej i maszyna "zareaguje" tak samo jak fizyczny komputer - czyli jeśli to będzie pendrive, to będzie widoczny jako dysk sata, jeśli drukarka to jako drukarka usb itd.

A w qemu jak widzę, muszę podać jeszcze czym to urządzenie usb jest (w tym wypadku ma być np użyte jako dysk)?

: 31 stycznia 2011, 17:09
autor: saturno
giaur pisze:hda to dysk który będzie widoczny w maszynie wirtualnej, ...
Precyzja i jeszcze raz precyzja!
W podanym przykładzie nie ma nigdzie samego hda.
Więc jeśli pytasz się o hda wygląda, że pytasz o /dev/hda
Jest natomiast -hda, a to już całkiem co innego.

Kod: Zaznacz cały

man qemu

Kod: Zaznacz cały

-hda file
-hdb file
-hdc file
-hdd file
    Use file as hard disk 0, 1, 2 or 3 image.
Wszystko co wpiszesz za -hda będzie uważane za pierwszy dysk twardy.
Natomiast wszystko co wpiszesz bezpośrednio za -cdrom będzie uważane za napęd cdrom.
Musi być spełniona przy tym prawidłowość, że co najmniej jedno z tych medii musi być startowe i muszą być one dostępne dla maszyny, bo inaczej maszyna w ogóle się ona nie uruchomi.
Sprawdzasz teraz jak widoczny jest pendrive (u mnie):

Kod: Zaznacz cały

# fdisk -l

Disk /dev/hda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x2ac92ac8

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        4961    39849201    7  HPFS/NTFS
/dev/hda2            4962        8094    25165822+   c  W95 FAT32 (LBA)
/dev/hda3            8095       19457    91273265+   f  W95 Ext'd (LBA)
/dev/hda5            8095       10183    16779861   83  Linux
/dev/hda6           10184       10281      787153+  82  Linux swap / Solaris
/dev/hda7           10282       18407    65272060   83  Linux
/dev/hda8           18408       19456     8426061    b  W95 FAT32

Disk /dev/sda: 1030 MB, 1030225920 bytes
255 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0000a52c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         125     1004031    6  FAT16
Disk /dev/sda: 1030 MB, 1030225920 bytes
Czyli u mnie pen drive to: /dev/sda

U innych /dev/sda może wskazywać na dysk twardy, dlatego radzę pięć razy sprawdzić!

Dodatkowo, zalecam się upewnić przeglądając właściwości urządzeń blokowych znajdujących się w katalogu: /dev/disk/by-id

Obrazek

Przykład polecenia, które u mnie działa.
Jako zwykły użytkownik:

Kod: Zaznacz cały

qemu -hda /dev/sda -m 496 -cdrom /media/WINLIN/iso/debian-testing-i386-businesscard.iso -soundhw all -localtime -std-vga -kernel-kqemu -boot d
Obrazek

Dostosuj je do swoich potrzeb, a jeśli nie będzie działać pokaż polecenie i to co pokazuje konsola.

Ps.1: Wszystko co opisałem powyżej odnosi się do Debiana Lenny i Qemu z Kqemu w wersjach tam standardowo dostępnych w repozytoriach.

Jeśli używasz innej wersji systemu musisz wziąć poprawkę na to, że w nowszych wersjach Debiana i Qemu niektóre rzeczy zostały wycofane, a inne dodane.

Ps.2: Odnośnie uruchamiania (instalacji) systemu o innej architekturze nie mam w tym doświadczenia, bo nie było mi to nigdy potrzebne, ale prawdopodobnie i o tym musisz poinformować maszynę wirtualną dodając do polecenia w konsoli odpowiednią opcję.

Ps3.: Powyższą konfigurację daje się uruchomić zarówno z zamontowanym jak i odmontowanym dysku pendrive w systemie bazowym.

Wydaje mi się, że lepiej jednak robić to na odmontowanym, tak żeby kontroler urządzenia nie dostawał instrukcji z dwóch źródeł, żeby nie było podobnie jakbyś wsadził dwóch kierowców do samochodu z dwoma kierownicami i każdy z nich kierowałby tylko swoim kołem.