dump (rdump) - создаёт дамп ФС
07.01.2010 22:08
Администратор
dump (rdump) - создаёт дамп ФС
Автор: lissyara. Оригинал: http://www.lissyara.su/articles/freebsd/file_system/dump/
Программа предназначена для создания дампа файловой системы - для последующего восстановления при помощи restore. dump может делать полный дамп файловой системы, или только файлы изменённые после определённой даты. Собственно дамп может быть сразу записан на дискеты (что нынче уже не актуально, даже в случае наличия ZIP-привода), магнитную ленту (стриммер, но тоже нечасто применяемое устройство - оптические носители очень подешевели, и приводы стоят недорого, хотя хранение мегабайта на стриммере обходится в три и более раза дешевле, к тому же не впример удобней - сравните одну кассету на 200Gb и 45 штук DVD-дисков, вылазиет второй фактор - привод DVD стоит в 5-7 раз дешевле среднего стриммера гигов на 40... Не говоря уже о стриммерах большой ёмкости. А жаль - очень интересные устройства, к тому же абсоютно штатные для FreeBSD - очень многие программы при отсутствии указания устройства вывода пытаются писать на первый стриммер системы - тот же dump, tar и прочие...). Короче - стриммеры рулят :) А по поводу dump (кстати, второе имя rdump - для обратной соместимости с 4.3BSD) - вот пара примеров:/usr/home/lissyara/>dump -0 -f - /dev/ad0s1a > dump_ad0s1a.img DUMP: WARNING: should use -L when dumping live read-write filesystems! DUMP: Date of this level 0 dump: Sat Jan 14 23:37:12 2006 DUMP: Date of last level 0 dump: the epoch DUMP: Dumping /dev/ad0s1a (/) to standard output DUMP: mapping (Pass I) [regular files] DUMP: mapping (Pass II) [directories] DUMP: estimated 56292 tape blocks. DUMP: dumping (Pass III) [directories] DUMP: dumping (Pass IV) [regular files] DUMP: DUMP: 56891 tape blocks DUMP: finished in 32 seconds, throughput 1777 KBytes/sec DUMP: DUMP IS DONE /usr/home/lissyara/>ls -lah | grep img -rw-r--r-- 1 root wheel 56M Jan 14 23:37 dump_ad0s1a.img /usr/home/lissyara/>df -h Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1a 248M 55M 173M 24% / devfs 1.0K 1.0K 0B 100% /dev /dev/ad0s1f 145M 12K 133M 0% /tmp /dev/ad0s1d 1.4G 1.1G 190M 86% /usr /dev/ad0s1e 87M 17M 63M 21% /var /usr/home/lissyara/>
Во как. Для "живых" файловых систем есть специальный ключик, оказывается. Ладно, сделаем ещё раз, с ним./usr/home/lissyara/>dump -0 -L -f - /dev/ad0s1a > dump_ad0s1a.img DUMP: Date of this level 0 dump: Sat Jan 14 23:39:05 2006 DUMP: Date of last level 0 dump: the epoch DUMP: Dumping snapshot of /dev/ad0s1a (/) to standard output DUMP: mapping (Pass I) [regular files] DUMP: mapping (Pass II) [directories] DUMP: estimated 56293 tape blocks. DUMP: dumping (Pass III) [directories] DUMP: dumping (Pass IV) [regular files] DUMP: DUMP: 56892 tape blocks DUMP: finished in 32 seconds, throughput 1777 KBytes/sec DUMP: DUMP IS DONE /usr/home/lissyara/>ls -lah | grep img -rw-r--r-- 1 root wheel 56M Jan 14 23:39 dump_ad0s1a.img /usr/home/lissyara/>
Это делали дамп в файл. Кстати, из листинга видно, что "задампилось" 56 мегабайт - только то, что было занято, после архивации станет ещё меньше. Кстати, компрессию программа не поддерживает - это косяк (я для эксперимента сжал дамп: 56->21Mb - хорошая прибавка к пенсии :)) Поэтому придётся как-то изгаляться - если дампить в файл - то можно bzip2 или gzip`ом жать, а если надо на ленту, со сжатием - тогда дампить в файл через "трубу", сжимая сразу, или сжимать потом, но писать в любом сучае tar`у... Если без сжатия - можно сразу на стример писать.
По поводу восстановления из полученного дампа - программа restore. http://www.freebsd.org/cgi/man.cgi?query=restore&sektion=
Обновлено 28.05.2010 13:21
dumpfs - программа для показа информации о файловой системе
07.01.2010 22:05
Администратор
dumpfs - программа для показа информации о файловой системе
Автор: lissyara. Оригинал: http://www.lissyara.su/articles/freebsd/file_system/dumpfs/
Программа для вывода информации о файловой системе: тип ФС, расположение суперблока, сколько занято, свободно, сколько симлинков, занятые и свободные иноды и кластеры. У неё тока один ключ -m, с ним, она показывает так, как показывала бы команда newfs./usr/home/lissyara/> /usr/home/lissyara/>df -h Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1a 248M 55M 173M 24% / devfs 1.0K 1.0K 0B 100% /dev /dev/ad0s1f 145M 12K 133M 0% /tmp /dev/ad0s1d 1.4G 1.1G 245M 82% /usr /dev/ad0s1e 87M 17M 63M 21% /var /usr/home/lissyara/> /usr/home/lissyara/>dumpfs /dev/ad0s1e magic 19540119 (UFS2) time Sun Jan 15 17:49:32 2006 superblock location 65536 id [ 43c1207c 31a89f6 ] ncg 4 size 46080 blocks 44503 bsize 16384 shift 14 mask 0xffffc000 fsize 2048 shift 11 mask 0xfffff800 frag 8 shift 3 fsbtodb 2 minfree 8% optim time symlinklen 120 maxbsize 16384 maxbpg 2048 maxcontig 8 contigsumsize 8 nbfree 4474 ndir 66 nifree 11607 nffree 47 bpg 1441 fpg 11528 ipg 2944 nindir 2048 inopb 64 maxfilesize 140806241583103 sbsize 2048 cgsize 4096 csaddr 424 cssize 2048 sblkno 40 cblkno 48 iblkno 56 dblkno 424 cgrotor 2 fmod 0 ronly 0 clean 0 avgfpdir 64 avgfilesize 16384 flags unclean soft-updates fsmnt /var volname swuid 0
cs[].cs_(nbfree,ndir,nifree,nffree): (1383,23,2914,9) (329,27,2854,13) (1374,11,2900,22) (1388,5,2939,3) blocks in last group 1437
cg 0: magic 90255 tell 18000 time Sun Jan 15 17:48:22 2006 cgx 0 ndblk 11528 niblk 2944 initiblk 128 nbfree 1383 ndir 23 nifree 2913 nffree 8 rotor 456 irotor 31 frotor 456 frsum 1 0 0 0 0 0 1 sum of frsum: 8 clusters 1-7: 0 0 0 0 0 0 0 clusters size 8 and over: 1 clusters free: 58-1440 inodes used: 0-30 blks free: 455, 457-11527
cg 1: magic 90255 tell 169c000 time Sun Jan 15 17:49:29 2006 cgx 1 ndblk 11528 niblk 2944 initiblk 192 nbfree 329 ndir 27 nifree 2850 nffree 11 rotor 704 irotor 25 frotor 704 frsum 2 2 0 0 1 0 0 sum of frsum: 11 clusters 1-7: 3 0 0 1 0 0 0 clusters size 8 and over: 1 clusters free: 0, 89, 101, 110-113, 1119-1440 inodes used: 0-24, 26-41, 47-51, 54-64, 66-71, 73-77, 79, 81-90, 92-93, 95-107 blks free: 0-7, 36-37, 424-428, 445-446, 712-719, 796, 799, 808-815, 880-911, 8952-11527
cg 2: magic 90255 tell 2d20000 time Sun Jan 15 17:48:02 2006 cgx 2 ndblk 11528 niblk 2944 initiblk 128 nbfree 1374 ndir 11 nifree 2900 nffree 22 rotor 584 irotor 14 frotor 16 frsum 3 1 2 0 1 1 0 sum of frsum: 22 clusters 1-7: 1 0 0 0 0 0 0 clusters size 8 and over: 1 clusters free: 0, 68-1440 inodes used: 0-13, 15-44 blks free: 0-7, 19, 26-28, 450, 454-455, 474-479, 493-495, 523-527, 543-11527
cg 3: magic 90255 tell 43a4000 time Sun Jan 15 17:48:23 2006 cgx 3 ndblk 11496 niblk 2944 initiblk 128 nbfree 1388 ndir 5 nifree 2939 nffree 3 rotor 16 irotor 5 frotor 8 frsum 0 0 1 0 0 0 0 sum of frsum: 3 clusters 1-7: 1 0 1 0 0 0 0 clusters size 8 and over: 1 clusters free: 0, 2-4, 53-1436 inodes used: 0-4 blks free: 0-7, 13-39, 424-11495 /usr/home/lissyara/> /usr/home/lissyara/>dumpfs -m /dev/ad0s1e # newfs command for /dev/ad0s1e (/dev/ad0s1e) newfs -O 2 -U -a 8 -b 16384 -d 16384 -e 2048 -f 2048 -g 16384 -h 64 -m 8 -o time -s 46080 /dev/ad0s1e /usr/home/lissyara/>
Вот что могу сказать чесно - понял из вывода этой команды примерно 20-30%... Придётся изучать доки по UFS :)
Обновлено 28.05.2010 13:22
|
bsdlabel - программа для разметки диска
07.01.2010 22:04
Администратор
bsdlabel - программа для разметки диска
Автор: lissyara. Оригинал: http://www.lissyara.su/articles/freebsd/file_system/bsdlabel/
bsdlabel - программа для изменения (а также проверки и установки новой) метки диска. До кучи может устанавливать код начальной загрузки (MBR, короче). Раньше она называлась disklabel (До FreeBSD 5.1). C её помощью можно сохранять старую метку в файл и восстанавливать её из него, ну и, разумеется, менять её прямо на диске. Ковырять диски будем под VmWare - т.к. в этом деле требуется аккуратность - за ошибки придётся расплачиваться содержимым диска... Начали:/usr/home/lissyara/>su /usr/home/lissyara/>dmesg | grep "ad[0-9]" ad0: 16384MB <VMware Virtual IDE Hard Drive 00000001> at ata0-master UDMA33 ad1: 4096MB <VMware Virtual IDE Hard Drive 00000001> at ata0-slave UDMA33 Trying to mount root from ufs:/dev/ad0s1a /usr/home/lissyara/>fdisk ad1 ******* Working on device /dev/ad1 ******* parameters extracted from in-core disklabel are: cylinders=8322 heads=16 sectors/track=63 (1008 blks/cyl)
Figures below won't work with BIOS for partitions not in cyl 1 parameters to be used for BIOS calculations are: cylinders=8322 heads=16 sectors/track=63 (1008 blks/cyl)
Media sector size is 512 Warning: BIOS sector numbering starts with sector 1 Information from DOS bootblock is: The data for partition 1 is: <UNUSED> The data for partition 2 is: <UNUSED> The data for partition 3 is: <UNUSED> The data for partition 4 is: <UNUSED> /usr/home/lissyara/>
В системе два диска, на первом (ad0) стоит система, второй пустой - его и будем ковырять. Для начала диск надо инициализировать, программой fdisk:/usr/home/lissyara/>fdisk -BI ad1 ******* Working on device /dev/ad1 ******* fdisk: Geom not found /usr/home/lissyara/>fdisk ad1 ******* Working on device /dev/ad1 ******* parameters extracted from in-core disklabel are: cylinders=8322 heads=16 sectors/track=63 (1008 blks/cyl)
Figures below won't work with BIOS for partitions not in cyl 1 parameters to be used for BIOS calculations are: cylinders=8322 heads=16 sectors/track=63 (1008 blks/cyl)
Media sector size is 512 Warning: BIOS sector numbering starts with sector 1 Information from DOS bootblock is: The data for partition 1 is: sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 63, size 8388513 (4095 Meg), flag 80 (active) beg: cyl 0/ head 1/ sector 1; end: cyl 129/ head 15/ sector 63 The data for partition 2 is: <UNUSED> The data for partition 3 is: <UNUSED> The data for partition 4 is: <UNUSED> /usr/home/lissyara/> /usr/home/lissyara/>
После fdisk появился раздел типа 165 (BSD). Вот теперь пришла пора bsdlabel - размечаем диск, в данном примере - одним шматком:/usr/home/lissyara/>bsdlabel -w ad1s1 auto /usr/home/lissyara/> /usr/home/lissyara/>bsdlabel ad1s1 > label_ad1 /usr/home/lissyara/>cat label_ad1 # /dev/ad1s1: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 8388497 16 unused 0 0 c: 8388513 0 unused 0 0 # "raw" part, don't edit /usr/home/lissyara/>
Если бы мне нужен бут сектор то это выглядело бы так:/usr/home/lissyara/>bsdlabel -w -B ad1s1 auto /usr/home/lissyara/>
Пожалуй и всё, по bsdlabel... Тока чтобы не выглядело всё это незаконченным - добьём начатое до конца:/usr/home/lissyara/>newfs /dev/ad1s1c /dev/ad1s1c: 4096.0MB (8388512 sectors) block size 16384, fragment size 2048 using 23 cylinder groups of 183.77MB, 11761 blks, 23552 inodes. super-block backups (for fsck -b #) at: 160, 376512, 752864, 1129216, 1505568, 1881920, 2258272, 2634624, 3010976, 3387328, 3763680, 4140032, 4516384, 4892736, 5269088, 5645440, 6021792, 6398144, 6774496, 7150848, 7527200, 7903552, 8279904 /usr/home/lissyara/>mount /dev/ad1s1c /mnt /usr/home/lissyara/>df -h Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1a 15G 1.4G 12G 10% / devfs 1.0K 1.0K 0B 100% /dev /dev/ad1s1c 3.9G 4.0K 3.6G 0% /mnt /usr/home/lissyara/>
Можно пользоваться :) И никаких sysinstall :)))
Обновлено 28.05.2010 13:21
mount_smbfs - монтирование форточных шар.
07.01.2010 22:02
Администратор
mount_smbfs - монтирование форточных шар.
Автор: lissyara. Оригинал: http://www.lissyara.su/articles/freebsd/file_system/mount_smbfs/
Жила себе сетка из виндовых машин - 2 сервака, три десятка узеров. Всё по уму - контроллер домена одна машина (Win2003), сервер БД и документов - другая (Win2000). Доки узеров и отделов на одном сервере, стриммер на другой. По ночам запускалось задание из планировщика, и на стриммер архивировались документы и БД. Через полгода илдиллия закончилась - пользовательские документы распухли до неприличных размеров, и за ночь всё записаться не успевало - в 9 утра народ на работе а залогиниться не может - контроллер домена слишком занят архивацией, чтобы отвлекаться на пользователей :) Выбил денег на отдельный сервер - под архивацию. Купили - AMD64 3200+, гектар ОЗУ, 2 винта 40Gb и 300Gb. Ну, разумеется ставим FreeBSD :) Ввиду того, что моей любимой 4.11 в 64-х разрядном исполнении нету, а перекомпилить вообще всё не было желания - решил поставить глюкавенькую FreeBSD6.0 - ибо машина будет внутри локалки, нестрашно. Короче. :) Смысл всего - в примонтировании виндового раздела на FreeBSD. Для начала, как обычно, попробовал врезать поддержку SMB в ядро - попытался пересобрать со следующими опциями ядро:option NETSMB # SMB/CIFS requester option SMBFS # SMB/CIFS filesystem
Непрокатило. Сборка вылетала на ошибках. Пришлось загрузить модулем, добавив такую строку в /boot/loader.confsmbfs_load="YES"
Чтобы не перезагружаться можно подгрузить модуль `руками`:/usr/home/lissyara/>su Password: /usr/home/lissyara/>kldload smbfs /usr/home/lissyara/>
Всё. Команда mount_smbfs должна работать. Проверяем:/usr/home/lissyara/>df -h Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1a 496M 122M 334M 27% / devfs 1.0K 1.0K 0B 100% /dev /dev/ad0s1d 4.8G 42K 4.5G 0% /tmp /dev/ad0s1e 24G 3.4G 19G 15% /usr /dev/ad1s1d 271G 185G 64G 74% /usr/local/backup /dev/ad0s1f 4.6G 1.1G 3.1G 27% /var /usr/home/lissyara/> /usr/home/lissyara/>mount_smbfs -E koi8-r:cp866 -W name_of_my_domain \ ? //liss@server1/out /mnt Password: /usr/home/lissyara/>df -h Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1a 496M 122M 334M 27% / devfs 1.0K 1.0K 0B 100% /dev /dev/ad0s1d 4.8G 42K 4.5G 0% /tmp /dev/ad0s1e 24G 3.4G 19G 15% /usr /dev/ad1s1d 271G 185G 64G 74% /usr/local/backup /dev/ad0s1f 4.6G 1.1G 3.1G 27% /var //LISS@SERVER1/OUT 112G 89G 23G 80% /mnt /usr/home/lissyara/>cd /mnt /mnt/>ls 1C сканирование0003.jpg 24-01-2006.zip тмп алена1.tif усилитель пробный.jpg фото.ppt коннект.txt футбол 16.09.05 /mnt/>
Пароль вводил доменный. Всё подмонтировалось. Параметр -E koi8-r:cp866 означает, что будет использоваться перекодировка, для имён файлов, из cp866 в koi8-r (ведь Вы уже русифицировали консоль, верно? :)). Надо заметить, что удалённая кодировка может быть и cp1251... Пару раз сталкивался - было вперемешку - часть файлов cp1251, а часть cp866 - встревон. Полный список кодировок поддерживаемых вашей машиной можно получить из вывода команды locale:/usr/home/lissyara/>locale -m ARMSCII-8 Big5 Big5HKSCS CP1131 CP1251 CP866 CP949 GB18030 GB2312 GBK ISCII-DEV ISO8859-1 ISO8859-13 ISO8859-15 ISO8859-2 ISO8859-4 ISO8859-5 ISO8859-7 ISO8859-9 KOI8-R KOI8-U PT154 SJIS US-ASCII UTF-8 eucCN eucJP eucKR /usr/home/lissyara/>
Также можно коннектится гостем:/usr/home/lissyara/>mount_smbfs -E koi8-r:cp866 -W тут_что_угодно \ ? //guest@server1/distrib /mnt Password: /usr/home/lissyara/>df -h Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1a 126M 44M 72M 38% / /dev/ad0s1e 504M 7.4M 456M 2% /tmp /dev/ad0s1f 24G 15G 7.4G 66% /usr /dev/ad0s1g 12G 1.2G 9.5G 11% /var procfs 4.0K 4.0K 0B 100% /proc /dev/ad2s1e 110G 35G 67G 34% /var/db/mysql //GUEST@SERVER1/DISTRIB 112G 89G 23G 80% /mnt /usr/home/lissyara/>
На запросе пароля я просто нажал "Enter". Кстати, операции эти надо делать от рута - от простого пользователя получите ошибку:/usr/home/lissyara/>mount_smbfs -E koi8-r:cp866 -W name_of_my_domain \ ? //liss@server1/distrib /mnt Warning: no cfg file(s) found. mount_smbfs: can not setup kernel iconv table (koi8-r:tolower): syserr = Operation not permitted /usr/home/lissyara/>
Всё это конечно хорошо - но монтированием, копированием и архивацией должен был заниматься скрипт. А он пароль ввести не мог :) Надо было чё-то думать. Kурение манов дало ключевое слово - nsmb.conf. Вот тут-то и была главная засада. Я полдня убил на этот файл - не хотел коннектится с его помошью и всё тут. пароль неверный... Сидел смотрел tcpdump`ом - думал может не понимает какой домен... Всё оказалось гораздо проще - я вводил названия серверов, домена, и имя пользователя маленькими буквами... А надо было большими... Итого у меня получилось:[default] workgroup=NAME_OF_MY_DOMAIN
[SERVER2] addr=192.168.20.2
[SERVER2:BACKUP] # чарсет - но с ним косяки - под фрёй всё пучком, всё видно, # всё читается, но в архивах, если их открывать из-под форточек, # русские имена слетают... Как вариант, если надо открывать под # окошками - поставить cp866:cp1251 (именно так! :)) charsets=koi8-r:cp866 password=password_usera_backup
После чего всё прекрасно монтируется такой командой:/usr/home/lissyara/>mount_smbfs -N //BACKUP@SERVER2/Bases /mnt /usr/home/lissyara/>df -h Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1a 496M 122M 334M 27% / devfs 1.0K 1.0K 0B 100% /dev /dev/ad0s1d 4.8G 42K 4.5G 0% /tmp /dev/ad0s1e 24G 3.4G 19G 15% /usr /dev/ad1s1d 271G 210G 39G 84% /usr/local/backup /dev/ad0s1f 4.6G 1.1G 3.1G 27% /var //BACKUP@SERVER2/BASES 92G 78G 14G 85% /mnt /usr/home/lissyara/>
Всё пожалуй. Если кому-то нужны будуть подробности - man :)
Обновлено 28.05.2010 13:22
|