Как да си инсталирам Linux Live дистрибуция на флашка?

Цел: да направим usb устройство, от което да може да се зарежда операционна система (Live дистрибуция), която може да се използва за тест и отстраняване на неизправности по съществуваща система или изпълнение на задачи без да е необходимо да се инсталира операционна система (например на чужд компютър или от съображения за сигурност) под Linux.

Създаването на бутващо usb е сравнително лесна операция с помощта на мощната команда dd (Disk Dump). Командата е доста универсална по своето предназначение и може да се използва на най-различни задачи като:

  • архивиране на нулевия сектор на хард диска (за MBR):
    dd if=/dev/sda of=sda.mbr count=1 bs=512`
  • копиране на дял от диска или цял диск:
    dd if=/dev/sdb1 of=sdb1.dsk
  • създаване на 524MB файл, който след това да се използва като хард диск (loop device):
    dd if=/dev/zero of=loop.dev bs=1024K count=500

Внимание: преди да тествате която и да е от командите, прочетете цялата статия. Една грешна стъпка може да нанесе големи щети.

Ще ни трябват също .iso файл с операционната система и флаш памет, която ще превърнем в Live USB.

Как да си набавим .iso файл?

В официалните сайтовете на много от дистрибуциите се предлагат скриптове, които ви позволяват да вземете онази част от дистрибуцията, която ви е наистина необходима, без частите, които смятате за излишни.

За пълната дистрибуция има и готови iso файлове, които можете да свалите и обикновено те могат да се стартират като Live CD с опция за инсталиране, ако желаете.

Как да изберем правилното устройство (флаш паметта)?

Преди да изпълните командата dd, трябва да установите като какво устройството е разпозната флаш паметта. Извършва се с командата dmesg (display messages ) непосредствено след включването на паметта в usb порта като за удобство можете да използвате и командата tail, тъй като интересуващата ни информация се намира в края на резултата от dmesg:

wizard@vserver:~$ dmesg |tail
[15938.459596] usb-storage 1-1.2:1.0: USB Mass Storage device detected
[15938.459755] scsi host7: usb-storage 1-1.2:1.0
[15939.460574] scsi 7:0:0:0: Direct-Access JetFlash Transcend 16GB 8.07 PQ: 0 ANSI: 4
[15939.461568] sd 7:0:0:0: Attached scsi generic sg2 type 0
[15939.464229] sd 7:0:0:0: [sdc] 31469568 512-byte logical blocks: (16.1 GB/15.0 GiB)
[15939.465452] sd 7:0:0:0: [sdc] Write Protect is off
[15939.465459] sd 7:0:0:0: [sdc] Mode Sense: 23 00 00 00
[15939.471062] sd 7:0:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[15939.476417] sdc: sdc1
[15939.480408] sd 7:0:0:0: [sdc] Attached SCSI removable disk
wizard@vserver:~$

В конкретния пример, флаш паметта е разпозната като устройство sdc, но на различна машина резултатът най-вероятно ще е различен и зависи от включените към системата хард дискове. Резултатът от примера е от машина с два хард диска /dev/sda и /dev/sdb и съответно флаш паметта е /dev/sdc.

Добре е да преглеждате внимателно резултатите и да проверявате, тъй като задаването на погрешно устройство може да доведе до невъзстановими загуби на данни от дисковите устройства.

Как да прехвърлим файла?

Командата за прехвърляне на iso файла е:

wizard@vserver:~$sudo dd if=/път/до/файл.iso of=/dev/sdc

където:

  • sudo – (super user do) е командата, която ви позволява да изпълнявате задачи от името на администратора. В случая задачата е прехвърляне на файла върху устройството и подобна задача не може да се изпълнява без специални права
  • if – (input file) този параметър задава файла източник. Пътят до файла може да бъде абсолютен (/path/file.iso) или относителен (./file или ../path/file.iso)
  • of – (otput file) изходящ файл, свързан с устройството (флаш паметта)

Командата сваля iso файла директно върху флашката, тя става Live, bootable флашка. Джобен Linux, които да стартирате при нужда на чужда машина, за свежа инсталация, спасение при грешки в конфигурационен файл и много други.

Автор: Дикран Хачикян