0. В LSK хорошо то, что с точки зрения MS-DOS это просто программа, занимающая не так уж много места. 1. Скачал книжки про Линукс http://www.nevod.ru/linux/doc/ 2. Запустил. Командная строка есть, shutdown выдать смог. 3. Зашел в редактор vi, не смог выйти. Хорошо, что со второй консоли смог снести все. 4. Ознакомился с vi по книжке. Записал команды на бумажку (книжка-то под виндами). Смог войти и выйти из vi. 5. Подключил TCP/IP. 5.1 Мой RTL8029 оказался клоном ne2000. РАскомментировать надо было обе строки # if or ne2000, uncomment it # insmod /lib/modules/8390.o insmod /lib/modules/ne.o 5.2 Заклинания для Ethernet'а взял из книжки. Получилось: # if has Ethernet networking, uncomment it # #ifconfig eth0 192.168.1.1 up #route add -host 192.168.1.1 eth0 #route add -net 192.168.1.0 IPADDR="195.nn.nnn.nnn" NETMASK="255.255.255.192" NETWORK="195.nn.nnn.128" BROADCAST="195.nn.nnn.191" GATEWAY="195.nn.nnn.nnn" ifconfig eth0 ${IPADDR} up netmask ${NETMASK} broadcast ${BROADCAST} route add -net ${NETWORK} eth0 route add default gw ${GATEWAY} metric 1 eth0 5.3 Прописал файлы: hostname : localhost mg.dorms.ptc.spbu.ru hosts : 127.0.0.1 localhost # Локальный адрес компьютера 195.19.253.149 mg.dorms.ptc.spbu.ru mg hosts.conf : order hosts,bind multi on resolv.conf (создал сам): domain dorms.ptc.spbu.ru nameserver 195.19.225.253 После этого смог ping'овать host'ы по именам. 6. Поставил Форт. Скопировал /etc в другую директорию (C:\ToLinux\ETC-MY\) средствами DOS и снес Линукс. После чего зашел в /DOS/tolinux/etc-my и выдал cp имя-файла /etc для всех пяти файлов, которые я правил в пункте 5. Стал искать, куда встал Форт. Это тоже нетривиально. C:\LINUX\USR\LOCAL\SMALL32.{_1\ Неплохо бы услышать что-нибудь о логике размещения программных продуктов. (MC (см. ниже) встал в C:\LINUX\USR\BIN\) Первое впечатление от Форта - WORDS выдает слишком много. Остановить нельзя. Однако + . и BYE работают. Можно ли Форт задать вместо shell? 7. Стал ставить Midnight Commander'а. Скачал MuLinux'овского - он захотел либлиотеку libgpm.so.1 . Когда поставил libgpm.so.1 mc потребовал libslang.so.0 . К этому моменту на http://winix.hypermart.net/ появился другой mc, и ссылка на LSK-форум http://www.TheGuestBook.com/vgbook/180645.gbook . Скачал с http://winix.hypermart.net/LSK/step2.htm и поставил: upgrade to libc6.1 Midnight Commander (v4.5, libc6.1) Снес всю систему, повторил упражнение из п.6 и поставил mc. FTP вроде бы работает быстрее, чем под Виндами. 8. tar назыавется star (!!!). И документация по ключам tar для star слегка бесполезна. 9. Хочется еще одну (3-ю) консоль и X-винды, но нет времени. 10. mc отказался запускаться. Завис, зараза. И на ^C не реагирует. Я просмотрел ps и сказал ему kill: kill %39 Kill killять не захотел. Говорит, надо kill [-signal] process-id [...] man kill упомянул про ключ -9. kill -9 39 Вроде, сработало. Посмотрел на первую консоль. Увидел там мордочку mc и надпись killed. И более никакой жизни на этой консоли не было. Послал все в shutdown. Ключ-то -9, кстати, упомянут как необязательный. Что же он значит? Зашел заново, дождался mc и велел ему опций автоматически больше не сохрянять (я, видимо, вышел в прошлый раз из него тогда, когда он на FTP ходил). Обнаружил, что этот файл не читается. Вместо русских букв - точки. Указал F9 - Options - Display bits - Full 8-bit output и заодно input, после чего получил возможность редактировать этот файл. 11. echo `pidof mc` выдало тот же process id, что и ps. Попробовал sync. Не ругается. По идее, после F2 из редактора mc и sync со второй консоли буфера должны быть слиты. Надеюсь, что выдавать sync с другой консоли корректно. 12. >И почему он не видит того, что добавлено из ДОСа? Для этого есть волшебная вещь, называется umssync. Но надо пользоваться с некоторой осторожносью - ей крайне желательно указывать путь только к конкретному каталогу. Почему - об этом ниже. Допустим, я что-то добавил в C:\linux\tmp. Для того, чтобы это увидеть, нужно фактически обновить файл --linux-.--- , а для этого запустить под Linux'ом umssync /tmp Но боже избави запустить umssync / ! Она среди прочих, дойдет и до каталога /DOS (корневого досовского) и честно, как просили, создаст в _каждом_ ДОС-каталоге --linux-.--- Оно не смертельно, но нужно ли? Попробовал umssync. 1) имя директории - обязательно, но это правильно 2) ключа --help она не понимает, что нехорошо 3) описание из help'а "directory creation mode" значит не больше, чем "режим создания файла". Ни то, ни другое, не является событием в жизни современного пользователя. Может, create only directories (files)? Остальное вроде ничего, понятно примерно. 4) она не понимает длинных виндовских имен файлов. Переименовала thisis~1.txt (бывший ThisIsATestFile.txt) в thisis#1.$00 . 13. Добавил 3-ю консоль (на которую переходят по Alt-F3). Получилось. Обрадовался и вставил в файл /etc/inittab c3:2345:respawn:/bin/agetty 38400 tty3 c4:2345:respawn:/bin/agetty 38400 tty4 c5:2345:respawn:/bin/agetty 38400 tty5 c6:2345:respawn:/bin/agetty 38400 tty6 а консолей - все равно только 3. Зато есть сообщение об ошибке: INIT: Id "c6" respawning too fast: disabled for 5 minutes 14. >Можно ли Форт задать вместо shell? В /etc/passwd : forth::500:500:Forth user:/usr/local/Small32:/usr/local/Small32/forth после чего на login: сказать просто forth. 15. Убрал * из пароля у пользователя shutdown: shutdown::6:0:shutdown:/sbin:/sbin/shutdown cannot execute /sbin/shutdown: No such file or directory изменил sbin на bin ash: can't load library libc.so.5 Оказалось, что на просмотр (x) директории /lib/libc5 права только у root. shutdown вместо sh запускаться не хочет. Сделал ему директорию и .profile . Теперь он мне говорит, что shutdown - не superuser. Поставил ему used id = 0 (как у root). Сработало. 16. Книжка подкинула идею попробовать завести для себя обычного пользователя. Книжка рекомендует работать под root только в крайних случаях; ей простительно: если бы мне это сказал help, я бы решил, что эта программа для MS-DOS слишком большого о себе мнения :-) . Сразу же возникли проюлемы с правами доступа. Пользователь не мог делать ничего. Команда chmod понимает не все, что сама же обещает в help'е. Проблема была в файле busybox - символические ссылки на него Интересно, что echo * никих псевдофайлов типа . и .. не показывает, а chmod a+r * не работает (в /bin). chmod a+r [a-z]* сработало. Интересно также, что ls -a * не работает, хотя работает ls -a Причиной является, видимо, файл -ash, чье имя принимается за ключ. По крайней мере, это то, чем выдача echo * отличается от выдачи echo [a-z]* 17. Завел также пользователя forth. В passwd добавил forth::500:500:Forth user:/usr/local/Small32:/usr/local/Small32/forth Не обошлось без граблей - в строку затесалось ^M, которого не видел редактор mc, но увидел vi. 18 Как же все-таки завести tty4 ? Пока их только 3 ... >Все очень просто: >в каталоге /dev есть только tty0 - tty3. >Нужно создать дополнительные: >cd /dev >mknod tyy4 c 4 4 >mknod tyy5 c 4 5 >mknod tyy6 c 4 6 >.... Заработало! Даже без перезагрузки. А вот root'у не на всех 6 консолях удается войти сразу. И у пользователя mg случилась ошибка на 5 и 6 консолях - TIOCLINUX (0/8/9) ioctl is gone - use /dev/vcs Вошел и на 4-ой консоли - то же самое. Повторил все с начала, выяснил - root не может войти с tty5 и tty6. С tty4 он входит, но после попытки выполнить vi из-под mc случается ошибка ioctl is gone (3 сообщения). >Оно честно сказало, чего хочет >Я слегка поторопился - дело в том, для просто консолей этого >достаточно, но mc (а точнее, его скринкапчурер (во, блин...)) >для виртуальных консолей использует /dev/vcs, /dev/vcsa >- это устройства с _произвольным доступом_, в отличии >от /dev/tty, которое просто поточное. vcsa от vcs отличается >тем, что символы там с аттрибутами. mknod vc4 c 7 4 mknod vc5 c 7 5 mknod vc6 c 7 6 mknod vcs4 c 7 4 mknod vcs5 c 7 5 mknod vcs6 c 7 6 mknod vcsa4 c 7 132 mknod vcsa5 c 7 133 mknod vcsa6 c 7 134 (номера взял из ls -lF -- два последних числа) chmod ga+rw vc[4-6] chmod ga+w vcs[4-6] chmod ga+w vcsa[4-6] mc заработал. Осталась проблема: illegal ROOT login on tty6 и tty5. А на 4-ом заходит. Может, флагов каких не хватает? 19. Попытался сходить на www.forth.org.ru из mc и обломился. Не хочет он вставать на мою домашнюю директорию, и команды типа cd и pwd выполнять не дает. ftp нету. 20. Сходил на ftp.kernel.org и скачал lynx. HOWTO насчет инсталляции ничего не говорит, т.к. "в вашем дистрибутиве он наверно уже есть". rpm -i /RPMs/lynx-2.8.2-2.i386.rpm error: cannot open //var/lib/rpm/packages.rpm создал такую директорию (пустую) rpm -i /RPMs/lynx-2.8.2-2.i386.rpm error: failed dependencies: indexhtml is needed by lynx-2.8.2-2 ld-linux.so.2 is needed by lynx-2.8.2-2 libc.so.6 is needed by lynx-2.8.2-2 и так далее. Насколько я понимаю, ему не хватает дазы банных о проинсталленных компонентах. Посмотрел в форуме про rpm. Библиотеки скачал с RedHat www.kernel.org . Теперь получаю ошибку lynx: error in loading shared libraries: lynx: undefined symbol: SLang_create_keymap . 21. Попробовал проинсталлировать c++. rpm проинсталлировался, однако запустить не могу. rpm -i --nodeps c++.prm и аналогично для ldconfig g++ tst g++: installation problem, cannot exec `ld': No such file or directory lynx тоже не запускается... 22. скачал ldd и новый lynx (с slackware) не хватает библиотеки libncurses.so.5 У RedHat'ки ее нет. И вообще в сети я нашел только libncurses.so.4 Нашел среди файлов ncurses.tgz Распаковал в поддиректорию и взял libncurses.so.5.0, перенес его в /lib ln -s libncurses.so.5.0 libncurses.so.5 И lynx запустился! Осталось только научить его читать Win-1251. Научил. Из lynx выдается команда ! , он запускает shell, а в shell'е выдается одна из команд ec cp866 ec koi8 ec cp1251 и затем - exit . Однако, не без глюка - если на одной консоли cp1251 (соответствует последней команде переключения), а на другой cp866 (устанавливалась ранее), то на другой он будет показывать 866, а вводить 1251. 23. Обнаружил, что только root имеет право записывать в DOS. А как это поменять? Вроде, на этом компе только я. 24. А есть ли логин по сети? 25. Расширил список надежных консолей (откуда может входить root). В файле login.defs см. строку securetty Точнее, # If defined, either full pathname of a file containing device names or # a ":" delimited list of device names. Root logins will be allowed only # upon these devices. # #CONSOLE /etc/securetty CONSOLE console:tty1:tty2:tty3:tty4:tty5:tty6:ttyp0:ttyp1 26. Попробовал mount Сделал /fd/a /fd/b /hd/c /hd/d /hd/e /hd/f /hd/g /hd/h /hd/i /hd/j Параметры для mount -t ntfs /dev/hda5 /hd/d -r -t ntfs /dev/hda6 /hd/e -t vfat /dev/hda7 /hd/f Интересно, что читать может только root. Завел файлы типа /bin/hdf+ #!/bin/sh mount -t vfat /dev/hda7 /hd/f Поставил описания дисководов (НГМД) в fstab, а она все равно говорит: must be superuser to use mount. Можно ли сказать в fstab, что тип /dev/hda1 -- vfat, а не umsdos? Не покривеет ли Линукс после такого? 27. При чтении ftp.forth.org.ru mc впадает в ступор. Я смог снести его командой kill -9 , однако после этого с той консоли запустить ничего нельзя. То есть, kill требует перезагрузки, и зачем тогда он нужен? Продолжение следует...