Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Eugene Grosbein                      2:5006/1       27 Nov 2002  22:43:02
 To : Sergey Solyanik
 Subject : Re: минифpю   бы... :-)
 -------------------------------------------------------------------------------- 
 
 
  SS>> А на веник ее записать так же как на дискету. Какая разница
  SS>> собственно? dd if=picobsd.bin of=/dev/ad0c или типа того ;)
  >> :))))))))))))))))
  >> скорее всего это не сработает. разница в формате загрузочных секторов fd0 и
  SS> ad0
  >> :)))
  >> так что...
  SS> ?! Hу это вы того... Попробуйте ;)
  SS> А потом заодно и про форматы загрузочных секторов почитайте ;)
 
 Угу. И, кстати, вот скриптик dddisk для создания образа небольшого HDD в файле.
 Если запустить dddisk -c vn0 file.img 500, создаст образ 
 загрузочного диска на 500M в файле file.img. После этого можно файл
 подмонтировать:
 
 vnconfig -c -s labels /var/vn0 file.img && mount /dev/vn0a /mnt/tmp
 
 Потом просто скопировать в /mnt/tmp дерево файлов, отмонтировать
 и писать dd'шкой в /dev/ad0. Будет грузиться и работать.
 Образ создается dangerously dedicated, дописывается /etc/disktab.
 Кроме того, образ можно подсунуть bochs и он его загрузит.
 
 Если запустить просто dddisk 500, то ничего никуда не пишет,
 никого вообще не трогает и только выводит disktab entry для такого диска.
 Скрипт писался на скорую руку, так что может быть неоптимальным
 и не учитывать краевых условий (больших дисков и пр.), но для <32Gb
 работать должен.
 
 Знатокам disklabel: какое ограничение на d_ncylinders?
 
 #!/bin/sh -e
 
 dte() {
   cat <<EOF
 
 $disktabname:\\
   ty=winchester:dt=ESDI:ns#$secpercyl:nt#$ntracks:nc#$ncylinders:se#$secsize:\\
   :pa#$secperunit:oa#0:ba#8192:fa#1024:ta=4.2BSD:\\
   :pc#$secperunit:oc#0:bc#8192:fc#1024:tc=unused
 EOF
 
 }
 
 create=no
 
 if [ "$1" = "-c" -a "$4" != '' ]; then
   create=yes
   shift
   vn="$1"
   shift
   file="$1"
   shift
   w_size="$1"
 elif [ $# = 1 ]; then
   w_size="$1"
 else
   echo "Usage (size in megabytes): $0 [-c vnX file] size"
   exit 1
 fi
 
 ntracks=16
 secpercyl=63
 secsize=512
 ncylinders=$(($w_size*1024*1024/$ntracks/$secpercyl/$secsize))
 a_size=$(($ncylinders*$secsize*$secpercyl*$ntracks))
 disktabname=disk$(($a_size/1024/1024))
 secperunit=$(($ncylinders*$ntracks*$secpercyl))
 disktab=/etc/disktab
 
 case "$vn" in
   /*)
     ;;
   *)
     vn="/dev/$vn"
     ;;
 esac
 
 if [ $create = yes ]; then
   if grep -q "^$disktabname:" $disktab; then
     echo "WARNING: $disktabname already exists in $disktab, press Ctrl-C now to 
 abort"
     sleep 5
   else    
     dte >> $disktab
   fi
   dd if=/dev/zero bs=512 count=$secperunit of="$file"
   vnconfig -c -s labels "$vn" "$file"
   disklabel -Bwr "$vn"c $disktabname
   newfs "$vn"a
   vnconfig -u "$vn"
 else
   echo $disktab entry:
   dte
 fi
 #E_O_F
 
 Eugene
 --- slrn/0.9.7.4 (FreeBSD)
  * Origin: Svyaz Service JSC (2:5006/1@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: минифpю бы... :-)   Eugene Grosbein   27 Nov 2002 22:43:02 
Архивное /ru.unix.bsd/886946abfa88.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional