Журнал лабораторных работ

Содержание

Журнал

Суббота (05/30/09)

/dev/pts/10
14:20:57
#losetup /dev/loop0 harddisk.img
harddisk.img: Нет такого файла или каталога
14:21:58
#dd if=/dev/zero of=/harddisk.img count=200 bs=1024k
200+0 записей считано
200+0 записей написано
 скопировано 209715200 байт (210 MB), 2,25402 c, 93,0 MB/c
14:22:11
#ls -l
итого 0
14:22:23
#tree
.
0 directories, 0 files
14:22:35
#cd ..

14:22:45
#ls -l
итого 0
14:22:48
#cd ..

14:23:26
#cd ..

14:23:28
#ls
bin   dev  flash         home        lib         media  opt   root  selinux  sys  usr  vmlinuz
boot  etc  harddisk.img  initrd.img  lost+found  mnt    proc  sbin  srv      tmp  var
14:23:56
#kpartx -a /dev/loop0
bash: kpartx: команда не найдена
14:24:19
#apt-get install kpartx
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Будут установлены следующие дополнительные пакеты:
  dmsetup
НОВЫЕ пакеты, которые будут установлены:
  dmsetup kpartx
обновлено 0, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 20 пакетов не обновлено.
Необходимо скачать 67,1kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 283kB.
...
Получено:2 http://192.168.15.5 sid/main kpartx 0.4.8-15 [25,3kB]
Получено 67,1kБ за 0s (722kБ/c)
Выбор ранее не выбранного пакета dmsetup.
(Чтение базы данных ... на данный момент установлено 47705 файлов и каталогов.)
Распаковывается пакет dmsetup (из файла .../dmsetup_2%3a1.02.30-3_i386.deb)...
Выбор ранее не выбранного пакета kpartx.
Распаковывается пакет kpartx (из файла .../kpartx_0.4.8-15_i386.deb)...
Обрабатываются триггеры для man-db ...
Настраивается пакет dmsetup (2:1.02.30-3) ...
Настраивается пакет kpartx (0.4.8-15) ...
14:24:50
#kpartx -a /dev/loop0
/proc/misc: No entry for device-mapper found
Is device-mapper driver missing from kernel?
Failure to communicate with kernel device-mapper driver.
device mapper prerequisites not met
14:24:54
#. /etc/bash_completion
bash: /etc/bash_completion: Нет такого файла или каталога
14:25:10
#modprobe de
FATAL: Module de not found.
14:25:37
#kpartx -a /dev/loop0
/proc/misc: No entry for device-mapper found
Is device-mapper driver missing from kernel?
Failure to communicate with kernel device-mapper driver.
device mapper prerequisites not met
14:26:07
#ls -l /dev/mapper/
ls: невозможно получить доступ к /dev/mapper/: Нет такого файла или каталога
14:32:21
#mkfs.ext3 /dev/mapper/loop0p1
mke2fs 1.41.5 (23-Apr-2009)
Could not stat /dev/mapper/loop0p1 --- Нет такого файла или каталога
The device apparently does not exist; did you specify it correctly?
14:32:51
#mkfs.ext3 /dev/mapper/loop0
mke2fs 1.41.5 (23-Apr-2009)
Could not stat /dev/mapper/loop0 --- Нет такого файла или каталога
The device apparently does not exist; did you specify it correctly?
14:33:23
#mkfs.ext3 /dev/mapper/loop0p1
mke2fs 1.41.5 (23-Apr-2009)
Could not stat /dev/mapper/loop0p1 --- Нет такого файла или каталога
The device apparently does not exist; did you specify it correctly?
14:36:32
#mount /dev/mapper/loop0p1 /mnt
mount: special device /dev/mapper/loop0p1 does not exist
14:38:46
#ls
bin   dev  flash         home        lib         media  opt   root  selinux  sys  usr  vmlinuz
boot  etc  harddisk.img  initrd.img  lost+found  mnt    proc  sbin  srv      tmp  var
14:39:54
#ls -la
итого 205160
drwxr-xr-x  22 root root      4096 Май 30 14:07 .
drwxr-xr-x  22 root root      4096 Май 30 14:07 ..
-rw-------   1 root root        40 Ноя 19  2008 .bash_history
drwxr-xr-x   2 root root      4096 Ноя 19  2008 bin
drwxr-xr-x   3 root root      4096 Ноя 19  2008 boot
drwxr-xr-x  16 root root      3760 Май 30 14:31 dev
drwxr-xr-x  88 root root      4096 Май 30 14:07 etc
drwxr-xr-x   2 root root      4096 Май 30 12:54 flash
-rw-r--r--   1 root root 209715200 Май 30 14:23 harddisk.img
...
drwxr-xr-x   7 root root      4096 Май 30 13:00 root
drwxr-xr-x   2 root root      4096 Май 30 14:24 sbin
drwxr-xr-x   2 root root      4096 Фев 21 16:55 selinux
drwxr-xr-x   2 root root      4096 Май 24 13:15 srv
-rw-------   1 root root     53248 Май 25 16:27 .swp
drwxr-xr-x  12 root root         0 Май 30 09:23 sys
drwxrwxrwt   7 root root      4096 Май 30 14:01 tmp
drwxr-xr-x  11 root root      4096 Май 24 13:22 usr
drwxr-xr-x  13 root root      4096 Май 24 13:15 var
lrwxrwxrwx   1 root root        25 Ноя 19  2008 vmlinuz -> boot/vmlinuz-2.6.29-2-686
14:41:54
#lsmod
Module                  Size  Used by
dm_mod                 48856  0
loop                   12988  1
fuse                   48352  0
nls_cp437               5304  0
vfat                    8672  0
fat                    41688  1 vfat
usb_storage            83552  0
nls_utf8                1472  0
ntfs                  177164  0
...
atl1                   26892  0
mii                     4648  2 3c59x,atl1
intel_agp              22548  1
ehci_hcd               29936  0
usbcore               124912  4 usb_storage,uhci_hcd,ehci_hcd
agpgart                30624  3 drm,intel_agp
thermal                15092  0
processor              39540  1 thermal
fan                     4104  0
thermal_sys            10272  3 thermal,processor,fan
14:42:03
#lsmod|grep hard

14:44:39
#losetup -a
/dev/loop0: [0811]:48870 (harddisk.img)
14:44:48
#cfdisk /dev/loop0
14:45:38
#fdisk /dev/loop0
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xbae2734c.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
...
Using default value 63
Last sector or +size or +sizeM or +sizeK (63-409599, default 409599):
Using default value 409599
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 22: Недопустимый аргумент.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
14:47:10
#fdisk -l
Disk /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xe0d9e0d9
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        2000    16064968+  83  Linux
/dev/sda2            4000        8000    32138032+  83  Linux
/dev/sda3            8001       10000    16065000   83  Linux
/dev/sda4            2001        3999    16056967+   5  Extended
Partition table entries are not in disk order
Disk /dev/sdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0876d499
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        2432    19535008+  83  Linux
14:49:21
#ls -l /dev/m
ls: невозможно получить доступ к /dev/m: Нет такого файла или каталога
14:49:37
#cd /dev/

14:50:12
#ls
adsp             hda      net                 ram3    snapshot  tty2   tty37  tty54    usbdev1.1_ep00  vcs5
agpgart          hpet     network_latency     ram4    snd       tty20  tty38  tty55    usbdev1.1_ep81  vcs6
audio            initctl  network_throughput  ram5    sndstat   tty21  tty39  tty56    usbdev2.1_ep00  vcs7
block            input    null                ram6    stderr    tty22  tty4   tty57    usbdev2.1_ep81  vcsa
bsg              kmem     port                ram7    stdin     tty23  tty40  tty58    usbdev3.1_ep00  vcsa1
bus              kmsg     ppp                 ram8    stdout    tty24  tty41  tty59    usbdev3.1_ep81  vcsa2
cdrom            log      printer             ram9    tty       tty25  tty42  tty6     usbdev4.1_ep00  vcsa3
char             loop0    psaux               random  tty0      tty26  tty43  tty60    usbdev4.1_ep81  vcsa4
console          loop1    ptmx                root    tty1      tty27  tty44  tty61    usbdev5.1_ep00  vcsa5
core             loop2    pts                 rtc     tty10     tty28  tty45  tty62    usbdev5.1_ep81  vcsa6
cpu_dma_latency  loop3    ram0                rtc0    tty11     tty29  tty46  tty63    usbdev6.1_ep00  vcsa7
disk             loop4    ram1                sda     tty12     tty3   tty47  tty7     usbdev6.1_ep81  xconsole
dm-0             loop5    ram10               sda1    tty13     tty30  tty48  tty8     usbdev7.1_ep00  zero
dri              loop6    ram11               sda2    tty14     tty31  tty49  tty9     usbdev7.1_ep81
dsp              loop7    ram12               sda3    tty15     tty32  tty5   ttyS0    vcs
dvd              MAKEDEV  ram13               sda4    tty16     tty33  tty50  ttyS1    vcs1
fd               mapper   ram14               sdb     tty17     tty34  tty51  ttyS2    vcs2
full             mem      ram15               sdb1    tty18     tty35  tty52  ttyS3    vcs3
fuse             mixer    ram2                shm     tty19     tty36  tty53  urandom  vcs4
14:50:14
#ls -l /dev/mapper/
итого 0
crw-rw---- 1 root root  10, 60 Май 30 14:31 control
brw-rw---- 1 root disk 254,  0 Май 30 14:48 loop0p1
14:54:37
#mount /dev/mapper/loop0p1 /mnt

14:55:45
#apt-get install grub
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Уже установлена самая новая версия grub.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 20 пакетов не обновлено.
14:57:50
#grub-install --no-floppy --root-directory=/mnt /dev/loop0
grub-probe: error: Cannot find a GRUB drive for /dev/loop0.  Check your device.map.
15:00:43
#grub
Probing devices to guess BIOS drives. This may take a long time.
15:05:50
#fdisk -l /dev/mapper/loop0p1
Disk /dev/mapper/loop0p1: 209 MB, 209682944 bytes
255 heads, 63 sectors/track, 25 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/loop0p1 doesn't contain a valid partition table
15:06:30
#cfdisk /dev/mapper/loop0p1
15:08:35
#fdisk /dev/mapper/loop0p1
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x65da9a66.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
1
...
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-25, default 25):
Using default value 25
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 22: Недопустимый аргумент.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
15:09:17
#grub
Probing devices to guess BIOS drives. This may take a long time.
15:11:07
#ls /dev/mapper/loop0p
ls: невозможно получить доступ к /dev/mapper/loop0p: Нет такого файла или каталога
15:11:20
#cd /dev/mapper/loop0p1
bash: cd: /dev/mapper/loop0p1: Это не каталог
15:11:37
#cd /dev/mapper/

15:11:47
#ls
control  loop0p1
15:11:49
#cat loop0p1
fšÚeƒþ??š UªÈàþ'‚ðõÇ Á!JÁ!J!Sï!JNí
                                  €<84£“†IF¥«”ÂF"XT¨06UHx³å­ªåÕá!Jaaaaa a
a
 a
aaab@îõ!!!@@@ûýaaa€€€¡¡¡ÀÀÀááá!!!@@@```€€€   ÀÀÀààà   @@@```€€€   ÀÀÀààà ` à  ` à  ` à  ` à  ` à                `               à
`
 
à
15:13:51
#cp /usr/lib/grub/i386-pc/* /mnt/boot/grub

15:15:12
#ln -s /dev/loop0 /dev/mapper/loop0p

15:15:56
#grub
Probing devices to guess BIOS drives. This may take a long time.

Статистика

Время первой команды журнала14:20:57 2009- 5-30
Время последней команды журнала15:15:56 2009- 5-30
Количество командных строк в журнале48
Процент команд с ненулевым кодом завершения, %33.33
Процент синтаксически неверно набранных команд, % 2.08
Суммарное время работы с терминалом *, час 0.92
Количество командных строк в единицу времени, команда/мин 0.87
Частота использования команд
ls11|======================| 22.45%
cd6|============| 12.24%
fdisk4|========| 8.16%
mkfs.ext33|======| 6.12%
kpartx3|======| 6.12%
grub3|======| 6.12%
losetup2|====| 4.08%
cfdisk2|====| 4.08%
mount2|====| 4.08%
apt-get2|====| 4.08%
lsmod2|====| 4.08%
cp1|==| 2.04%
dd1|==| 2.04%
grub-install1|==| 2.04%
.1|==| 2.04%
modprobe1|==| 2.04%
cat1|==| 2.04%
grep1|==| 2.04%
ln1|==| 2.04%
tree1|==| 2.04%
____
*) Интервалы неактивности длительностью 30 минут и более не учитываются

Справка

Для того чтобы использовать LiLaLo, не нужно знать ничего особенного: всё происходит само собой. Однако, чтобы ведение и последующее использование журналов было как можно более эффективным, желательно иметь в виду следующее:
  1. В журнал автоматически попадают все команды, данные в любом терминале системы.

  2. Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду w. В поле WHAT, соответствующем текущему терминалу, должна быть указана программа script.

  3. Команды, при наборе которых были допущены синтаксические ошибки, выводятся перечёркнутым текстом:
    $ l s-l
    bash: l: command not found
    

  4. Если код завершения команды равен нулю, команда была выполнена без ошибок. Команды, код завершения которых отличен от нуля, выделяются цветом.
    $ test 5 -lt 4
    Обратите внимание на то, что код завершения команды может быть отличен от нуля не только в тех случаях, когда команда была выполнена с ошибкой. Многие команды используют код завершения, например, для того чтобы показать результаты проверки

  5. Команды, ход выполнения которых был прерван пользователем, выделяются цветом.
    $ find / -name abc
    find: /home/devi-orig/.gnome2: Keine Berechtigung
    find: /home/devi-orig/.gnome2_private: Keine Berechtigung
    find: /home/devi-orig/.nautilus/metafiles: Keine Berechtigung
    find: /home/devi-orig/.metacity: Keine Berechtigung
    find: /home/devi-orig/.inkscape: Keine Berechtigung
    ^C
    

  6. Команды, выполненные с привилегиями суперпользователя, выделяются слева красной чертой.
    # id
    uid=0(root) gid=0(root) Gruppen=0(root)
    

  7. Изменения, внесённые в текстовый файл с помощью редактора, запоминаются и показываются в журнале в формате ed. Строки, начинающиеся символом "<", удалены, а строки, начинающиеся символом ">" -- добавлены.
    $ vi ~/.bashrc
    2a3,5
    >    if [ -f /usr/local/etc/bash_completion ]; then
    >         . /usr/local/etc/bash_completion
    >        fi
    

  8. Для того чтобы изменить файл в соответствии с показанными в диффшоте изменениями, можно воспользоваться командой patch. Нужно скопировать изменения, запустить программу patch, указав в качестве её аргумента файл, к которому применяются изменения, и всавить скопированный текст:
    $ patch ~/.bashrc
    В данном случае изменения применяются к файлу ~/.bashrc

  9. Для того чтобы получить краткую справочную информацию о команде, нужно подвести к ней мышь. Во всплывающей подсказке появится краткое описание команды.

    Если справочная информация о команде есть, команда выделяется голубым фоном, например: vi. Если справочная информация отсутствует, команда выделяется розовым фоном, например: notepad.exe. Справочная информация может отсутствовать в том случае, если (1) команда введена неверно; (2) если распознавание команды LiLaLo выполнено неверно; (3) если информация о команде неизвестна LiLaLo. Последнее возможно для редких команд.

  10. Большие, в особенности многострочные, всплывающие подсказки лучше всего показываются браузерами KDE Konqueror, Apple Safari и Microsoft Internet Explorer. В браузерах Mozilla и Firefox они отображаются не полностью, а вместо перевода строки выводится специальный символ.

  11. Время ввода команды, показанное в журнале, соответствует времени начала ввода командной строки, которое равно тому моменту, когда на терминале появилось приглашение интерпретатора

  12. Имя терминала, на котором была введена команда, показано в специальном блоке. Этот блок показывается только в том случае, если терминал текущей команды отличается от терминала предыдущей.

  13. Вывод не интересующих вас в настоящий момент элементов журнала, таких как время, имя терминала и других, можно отключить. Для этого нужно воспользоваться формой управления журналом вверху страницы.

  14. Небольшие комментарии к командам можно вставлять прямо из командной строки. Комментарий вводится прямо в командную строку, после символов #^ или #v. Символы ^ и v показывают направление выбора команды, к которой относится комментарий: ^ - к предыдущей, v - к следующей. Например, если в командной строке было введено:

    $ whoami
    
    user
    
    $ #^ Интересно, кто я?
    
    в журнале это будет выглядеть так:
    $ whoami
    
    user
    
    Интересно, кто я?

  15. Если комментарий содержит несколько строк, его можно вставить в журнал следующим образом:

    $ whoami
    
    user
    
    $ cat > /dev/null #^ Интересно, кто я?
    
    Программа whoami выводит имя пользователя, под которым 
    мы зарегистрировались в системе.
    -
    Она не может ответить на вопрос о нашем назначении 
    в этом мире.
    
    В журнале это будет выглядеть так:
    $ whoami
    user
    
    Интересно, кто я?
    Программа whoami выводит имя пользователя, под которым
    мы зарегистрировались в системе.

    Она не может ответить на вопрос о нашем назначении
    в этом мире.
    Для разделения нескольких абзацев между собой используйте символ "-", один в строке.

  16. Комментарии, не относящиеся непосредственно ни к какой из команд, добавляются точно таким же способом, только вместо симолов #^ или #v нужно использовать символы #=

  17. Содержимое файла может быть показано в журнале. Для этого его нужно вывести с помощью программы cat. Если вывод команды отметить симоволами #!, содержимое файла будет показано в журнале в специально отведённой для этого секции.
  18. Для того чтобы вставить скриншот интересующего вас окна в журнал, нужно воспользоваться командой l3shot. После того как команда вызвана, нужно с помощью мыши выбрать окно, которое должно быть в журнале.
  19. Команды в журнале расположены в хронологическом порядке. Если две команды давались одна за другой, но на разных терминалах, в журнале они будут рядом, даже если они не имеют друг к другу никакого отношения.
    1
        2
    3   
        4
    
    Группы команд, выполненных на разных терминалах, разделяются специальной линией. Под этой линией в правом углу показано имя терминала, на котором выполнялись команды. Для того чтобы посмотреть команды только одного сенса, нужно щёкнуть по этому названию.

О программе

LiLaLo (L3) расшифровывается как Live Lab Log.
Программа разработана для повышения эффективности обучения Unix/Linux-системам.
(c) Игорь Чубин, 2004-2008

$Id$