Ten artykuł przygotowałem przede wszystkim z myślą "o sobie samym", by w przyszłości sobie poradzić z tego typu zadaniem.

Zapraszam do lektury!

Programy zarządzające sprzętem komputera to dzisiaj UEFI, który zastąpił BIOS. Jak się okazuje przygotowanie pliku obrazu dystrybucji Kubuntu do pracy na takim komputerze wcale nie jest takie proste.

Do dzieła.

Zadałem sobie pytanie "jak zainstalować Kubuntu na swoim komputerze"? Okazuje się, że na stronie Kubuntu (https://kubuntu.org/) brak prostej odpowiedzi na takie pytanie. No dobra, każdy przecież wie, że Kubuntu to taki mniejszy bliźniak Ubuntu, a do Ubuntu to jest cała masa dokumentacji. Próbuję. Pierwsza niespodzianka - domena ma tym razem rozszerzenie "com": https://www.ubuntu.com/. Jest dużo lepiej, bo już po kliknięciu na pozycję z menu "Download" mogę znaleźć informację o tym, jak przygotować pamięć USB, by załadować z niego program instalacyjny. Klikam. Jest kilka dróg do wyboru, wśród których interesujące są dwie: przygotowanie pamięci USB za pomocą systemu operacyjnego Windows i Ubuntu.

Zaczynam od Windows. Powinienem zainstalować aplikację Rufus. Skracając, ta droga okazała się ślepą uliczką. Kompletnie nie zadziałała. Pomimo wypróbowania wielu różnych ustawień nie udało mi się uruchomić Kubuntu z tak przygotowanego paluszka. Dla kronikarskiej staranności, wykorzystałem wersję 3.1.1320, system operacyjny Windows 10 Home.

Rufus 01 Rufus 02 
Rufus 03  Rufus 04 

W takim razie czytam, w jaki sposób posłużyć się systemem Ubuntu. Standardowo wraz z obrazem (.iso) Ubuntu jest dostarczana aplikacja "Startup Disk Creator".

Niestety w przypadku Kubuntu nie jest już tak fajnie. Nie ma tej aplikacji wśród programów dostarczanych wraz z obrazem (.iso), co może być sporym utrudnieniem w sytuacji, gdy nie możemy się połączyć z Internetem i dociągnąć stosownego pakietu. Na wszelki wypadek pokażę, jak pobrać, zainstalować i skorzystać z tego programu.

Próbuję się dowiedzieć, jak nazywa się pakiet, który zawiera ten program:

maciej@gucek:~$~apt-cache search startup disk

cryptsetup - disk encryption support - startup scripts
mdadm - tool to administer Linux MD arrays (software RAID)
usb-creator-common - create a startup disk using a CD or disc image (common files)
usb-creator-gtk - create a startup disk using a CD or disc image (for GNOME)
cl-launch - uniform frontend to running Common Lisp code from the shell
collectd-core - statistics collection and monitoring daemon (core system)
ganeti - cluster virtualization manager
ganeti-2.16 - cluster virtualization manager - Python components
ganeti-doc - cluster virtualization manager - documentation
ganeti-haskell-2.16 - cluster virtualization manager - Haskell components
python-ganeti-rapi - cluster virtualization manager - RAPI client library
systemd-bootchart - boot performance graphing tool
usb-creator-kde - create a startup disk using a CD or disc image (for KDE)

Na ostatniej pozycji z listy wyników znalazł się poszukiwany pakiet. Próbuję dowiedzieć się o nim nieco więcej.

maciej@gucek:~$~apt-cache show usb-creator-kde

Package: usb-creator-kde

Architecture: amd64

Version: 0.3.5

Priority: optional

Section: universe/admin

Source: usb-creator

Origin: Ubuntu

Maintainer: Ubuntu Developers <Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.;

Original-Maintainer: usb-creator Hackers Team <Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.;

Bugs: https://bugs.launchpad.net/ubuntu/+filebug

Installed-Size: 173

Depends: python3:any (>= 3.3.2-2~), usb-creator-common (= 0.3.5), python3-pyqt5, python3-dbus.mainloop.pyqt5

Filename: pool/universe/u/usb-creator/usb-creator-kde_0.3.5_amd64.deb

Size: 66052

MD5sum: bdc4ab6415a104cd8d500966238faf06

SHA1: 27f52938604b37e6a02c76b0e1983215f6983fb9

SHA256: caaf9bb373ed2a5c7f2166b4e8c10bdad1e99b93160756ee3b6581bb66b778fe

Description-en: create a startup disk using a CD or disc image (for KDE)
Startup Disk Creator converts a USB key or SD card into a volume from which you
can start up and run Ubuntu. You can also store files and settings in any space
left over.
.
The program also works for Debian, or any other Debian-based OS for which you
have a CD or .iso image.
.
This package contains the KDE client frontend.

Description-md5: cc3fb792d79d0b5fa10c1afdb5909782

Task: lubuntu-qt-desktop

Supported: 9m

Odfiltrowuję sam opis:

maciej@gucek:~$ apt-cache show usb-creator-kde | sed -n '/Description/,/Description/p'

Description-en: create a startup disk using a CD or disc image (for KDE)
Startup Disk Creator converts a USB key or SD card into a volume from which you
can start up and run Ubuntu. You can also store files and settings in any space
left over.
.
The program also works for Debian, or any other Debian-based OS for which you
have a CD or .iso image.
.
This package contains the KDE client frontend.

Description-md5: cc3fb792d79d0b5fa10c1afdb5909782

Jak nazywa się plik, który faktycznie uruchamia aplikację?

maciej@gucek:~$ apt-file search usb-creator-kde | grep -E "(bin/)?usb-creator-kde$"

usb-creator-kde: /usr/bin/usb-creator-kde

Po instalacji, w menu wygląda to następująco:

No to ruszamy:

Niestety program ma pewną niedoskonałość - niemal zarz po uruchomieniu pojawia się dodatkowe okienko "Instalowanie" z paskiem postępu:

Teraz należy dołączyć do komputera stosowny nośnik USB na którym nagramy obraz dystrybucji (.iso). Po dołączeniu do komputera pojawi się on w sekcji "Nośnik docelowy".

Teraz wybieram obraz dystrybucji (plik z rozszerzeniem .iso), który zamierzam nagrać. W moim przypadku jest to Kubuntu 18.04.01.

Teraz klikam przycisk "Utwórz nośnik rozruchowy":

Pojawia się jeszcze przytomne pytanie:

Odpowiadam na nie twierdząco. Teraz cała akcja z poszukiwaniem okienka z paskiem postępu. W końcu udaje mi się je znaleźć. Nie jest ono widoczne pośród aktywnych okienek na pasku zadań. Przez to można dojść do wniosku, że aplikacja zakończyła zadanie, gdy tymczasem nadal działa w tle. Obecnie nie wszystkie pamięci  USB są wyposażone w diodę, która sygnalizuje pracę urządzenia. Tym bardziej przydałby się więc stale widoczny pasek postępu.

Po dojściu paska postępu do 100% wyświetlony został poniższy komunikat.

Instalacja za pomocą tego narzędzia pozwala na nośnika USB do współpracy z UEFI. Na paluszku tworzone są dwie partycje: partycja z danymi oraz partycja EFI (GPT = GUID Partition Table = Globally Unique Identifiers Partition Table):

maciej@gucek:~$ sudo fdisk -l /dev/sdc

[sudo] hasło użytkownika maciej:
Dysk /dev/sdc: 3,8 GiB, bajtów: 4022337024, sektorów: 7856127
Jednostki: sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Typ etykiety dysku: dos
Identyfikator dysku: 0x418c5dc0

Urządzenie Rozruch Początek Koniec Sektory Rozmiar Id Typ
/dev/sdc1 * 0 3673855 3673856 1,8G 0 Brak
/dev/sdc2 3593184 3597855 4672 2,3M ef EFI (FAT-12/16/32)

 

Teraz proces przygotowania paluszka USB z obrazem KUBUNTU tylko za pomocą poleceń Bash. Od razu podpowiem, że zakończy się niepowodzeniem.

Rozpoznaję, który z dysków to USB. Podpowiedź, to będzie taki ze znanym identyfikatorem dysku. W moim przypadku będzie to 0x418c5dc0. Niezłym pomysłem wydaje się nadanie bardziej unikalnej nazwy, o czym więcej za chwilę.

maciej@gucek:~$ sudo fdisk -l /dev/sdc


Dysk /dev/sdc: 3,9 GiB, bajtów: 4126146560, sektorów: 8058880
Jednostki: sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Typ etykiety dysku: dos
Identyfikator dysku: 0x418c5dc0

Urządzenie Rozruch Początek Koniec Sektory Rozmiar Id Typ
/dev/sdc1 * 0 3673855 3673856 1,8G 0 Brak
/dev/sdc2 3593184 3597855 4672 2,3M ef EFI (FAT-12/16/32)

Jak widać powyżej dysk ten już był odpowiednio przygotowany jako rozruchowy. Teraz chcę go wykorzystać ponownie do tego samego celu, ale za pomocą innego narzędzia (innego programu)

Teraz magiczne polecenie ddrescue (pakiet gddrescue).

maciej@gucek:~/temp1/Obrazy$ sudo ddrescue ubuntu-18.04.1-desktop-amd64.iso /dev/sdc --force -D

GNU ddrescue 1.22
ipos: 1953 MB, non-trimmed: 0 B, current rate: 24690 kB/s
opos: 1953 MB, non-scraped: 0 B, average rate: 27129 kB/s
non-tried: 0 B, bad-sector: 0 B, error rate: 0 B/s
rescued: 1953 MB, bad areas: 0, run time: 1m 11s
pct rescued: 100.00%, read errors: 0, remaining time: n/a
time since last successful read: n/a
Finished

Sprawdzam efekt działania programu ddrescue:

maciej@gucek:~/temp1/Obrazy$ sudo fdisk -l /dev/sdc

Dysk /dev/sdc: 3,9 GiB, bajtów: 4126146560, sektorów: 8058880
Jednostki: sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Typ etykiety dysku: dos
Identyfikator dysku: 0x663eb4c4

Urządzenie Rozruch Początek Koniec Sektory Rozmiar Id Typ
/dev/sdc1 * 0 3815135 3815136 1,8G 0 Brak
/dev/sdc2 3737268 3741939 4672 2,3M ef EFI (FAT-12/16/32)

Przy tej okazji odkrywam, że zmienił się identyfikator dysku. Jest to prawdopodobnie efekt działania programu ddrescue.

Wynik końcowy: niepowodzenie.Przy próbie uruchomienia komputera pojawia się komunikat "isolinux.bin missing or corrupt. Reboot and Select proper Boot device or Insert Boot Media in selected Boot device and press a key_".

 

Jest jeszcze jedna metoda prowadząca do celu - wypalenie pliku obrazu (.iso) na nośniku optycznym, np. za pomocą niezawodnej aplikacji K3b. Stosowna nagrywarka ma interfejs USB. Po nagraniu płytę DVD należy umieścić w nagrywarce, która tym razem będzie pełnić rolę urządzenia odczytującego.

Jak zachowa się UEFI?

Jeżeli dany obraz nie zostanie rozpoznany jako "bezpieczny" a w UEFI aktywny jest tryb bezpieczny (ang. security mode), to pomimo nagrania obrazu za pomocą powyższego narzędzia paluszek może się nie uruchomić. By obraz został uznany za "bezpieczny", autor obrazu musi go zgłosić bodajże do Microsoftu celem uzyskania stosownej autoryzacji. Na szczęście wydawca obrazów Ubuntu i Kubuntu dopełnił tej formalności.

Komentowanie za pomocą rozszerzenia JComments zostało wyłączone. Zapraszam do dodawania komentarzy za pomocą aplikacji Disqus.