| 
 
 
   |   |  www.lissyara.su—> статьи—> FreeBSD—> Файловая система—> ffsinfo
 
 ffsinfo - программа создания дампа метаинформации UFS
Автор: lissyara.
 
       `Исчо` одна интересная програмулина для ковыряния FS - ffsinfo. Позволяет делать дамп всей метаинформации файловой системы UFS. Разумеется всю FS дампить никто не заставляет (если дампить всю, то объём дампа составит до 2% от размера FS), при желании можно сделать частичный дамп, определённой группы цилиндров, или даже одной иноды.Ключики:
 -g cylinder_group этот ключ ограничит дамп только информацией об этой группе цилиндров. 0 - первая группа цилинров, -1 - последняя
 -i inode - ограничит дамп только информацией об этой иноде. Минимальная разрешённая инода - 2. Если инода не выбрана, но группа цилиндров определена, то будет создан дамп только для инод в пределах этой группы цилиндров.
 -l level - уровень детализации дампа. Значение `по-умолчанию` - 255.
 -o outfile - имя файла в который будет сделан дамп. Должен быть обязательно. Если задать - то дамп будет выведен на стандартный вывод (в трубу, или на экран.).
 
 Вот примеры использования:
 
 
		
| /usr/home/lissyara/>ls -i
4945922 .cshrc             4945927 .mailrc       4945931 distfiles
4945924 .login             4945928 .profile      4945930 distfiles.tar.bz2
4945926 .login_conf        4945925 .rhosts       4946193 file.txt
4945923 .mail_aliases      4945929 .shrc
/usr/home/lissyara/>ffsinfo -o - -i 4945927 -l 0x100 /dev/ad1s1c
===== START UFS2 INODE DUMP =====
# 0@80a4700: Inode 0x004b7807
mode       u_int16_t      0100644
nlink      int16_t        0x0001
uid        u_int32_t      0x000003e9
gid        u_int32_t      0x00000000
blksize    u_int32_t      0x00000000
size       u_int64_t      0x000000000000014b
blocks     u_int64_t      0x0000000000000004
atime      ufs_time_t     1137673537
mtime      ufs_time_t     1137673537
ctime      ufs_time_t     1137673537
birthtime  ufs_time_t     1137673537
mtimensec  int32_t        0x00000000
atimensec  int32_t        0x00000000
ctimensec  int32_t        0x00000000
birthnsec  int32_t        0x00000000
gen        int32_t        0x1649ada8
kernflags  u_int32_t      0x00000000
flags      u_int32_t      0x00000000
extsize    int32_t        0x00000000
db         ufs2_daddr_t[0] 0x         12d7d9f
===== END UFS2 INODE DUMP =====
/usr/home/lissyara/>
 |   Это инфа по одной иноде. Можно достать информацию, например по суперблоку:
 
		
| /usr/home/lissyara/>ffsinfo -o - -l 0x001 /dev/ad1s1c
===== START SUPERBLOCK =====
# 0@80808c4: primary sblock
sblkno            int32_t          0x00000028
cblkno            int32_t          0x00000030
iblkno            int32_t          0x00000038
dblkno            int32_t          0x00000bb8
old_cgoffset      int32_t          0x00000000
old_cgmask        int32_t          0x00000000
old_time          int32_t                   0
old_size          int32_t          0x00000000
old_dsize         int32_t          0x00000000
ncg               int32_t          0x000000d6
bsize             int32_t          0x00004000
fsize             int32_t          0x00000800
frag              int32_t          0x00000008
minfree           int32_t          0x00000008
old_rotdelay      int32_t          0x00000000
old_rps           int32_t          0x00000000
bmask             int32_t          0xffffc000
fmask             int32_t          0xfffff800
bshift            int32_t          0x0000000e
fshift            int32_t          0x0000000b
maxcontig         int32_t          0x00000008
maxbpg            int32_t          0x00000800
fragshift         int32_t          0x00000003
fsbtodb           int32_t          0x00000002
sbsize            int32_t          0x00000800
spare1            int32_t[2]       0x00000000 0x00000000
nindir            int32_t          0x00000800
inopb             int32_t          0x00000040
old_nspf          int32_t          0x00000000
optim             int32_t          0x00000000
old_npsect        int32_t          0x00000000
old_interleave    int32_t          0x00000000
old_trackskew     int32_t          0x00000000
id                int32_t[2]       0x43cf81c1 0x85c2eb4f
old_csaddr        int32_t          0x00000000
cssize            int32_t          0x00001000
cgsize            int32_t          0x00004000
spare2            int32_t          0x00000000
old_nsect         int32_t          0x00000000
old_spc           int32_t          0x00000000
old_ncyl          int32_t          0x00000000
old_cpg           int32_t          0x00000000
ipg               int32_t          0x00005c00
fpg               int32_t          0x00016f88
===== START CYLINDER SUMMARY =====
# 1@8080984: internal old_cstotal
ndir   int32_t 0x00000000
nbfree int32_t 0x00000000
nifree int32_t 0x00000000
nffree int32_t 0x00000000
===== END CYLINDER SUMMARY =====
fmod              int8_t           0x00
clean             int8_t           0x00
ronly             int8_t           0x00
old_flags         int8_t           0xffffff80
fsmnt             u_char[MAXMNTLEN] "/usr"
volname           u_char[MAXVOLLEN] ""
swuid             u_int64_t        0x0000000000000000
pad               int32_t          0x00000000
cgrotor           int32_t          0x00000017
old_cpc           int32_t          0x00000000
maxbsize          int32_t          0x00004000
sblockloc         int64_t          0x0000000000010000
===== START CYLINDER SUMMARY TOTAL =====
# 1@8080cb4: internal cstotal
ndir        int64_t 0x00000000000063fc
nbfree      int64_t 0x000000000022a1f5
nifree      int64_t 0x00000000004a9303
nffree      int64_t 0x0000000000008a21
numclusters int64_t 0x0000000000000000
===== END CYLINDER SUMMARY TOTAL =====
time              ufs_time_t       1137745993
size              int64_t          0x0000000001324af1
dsize             int64_t          0x000000000128a067
csaddr            ufs2_daddr_t     0x0000000000000bb8
pendingblocks     int64_t          0x0000000000000000
pendinginodes     int32_t          0x00000000
snapinum          int32_t[ 0]      0x00000000
avgfilesize       int32_t          0x00004000
avgfpdir          int32_t          0x00000040
save_cgsize       int32_t          0x00000000
flags             int32_t          0x00000002
contigsumsize     int32_t          0x00000008
maxsymlinklen     int32_t          0x00000078
old_inodefmt      int32_t          0x00000000
maxfilesize       u_int64_t        0x000080100202ffff
qbmask            int64_t          0x0000000000003fff
qfmask            int64_t          0x00000000000007ff
state             int32_t          0x00000000
old_postblformat  int32_t          0x00000000
old_nrpos         int32_t          0x00000000
spare5            int32_t[2]       0x00000000 0x00000000
magic             int32_t          0x19540119
===== END SUPERBLOCK =====
/usr/home/lissyara/>
 |  Другие примеры приводить не буду, тока один, чтобы был понятен общий объём инфы:
 
		
| /usr/home/lissyara/>
/usr/home/lissyara/>ffsinfo -o - -l 255 /dev/ad1s1c | wc -l
   54452
/usr/home/lissyara/>ffsinfo -o file.txt -l 255 /dev/ad1s1c
/usr/home/lissyara/>ls -lah | grep file.txt
-rw-r--r--  1 root      wheel    13M Jan 20 11:53 file.txt
/usr/home/lissyara/>
 |  
 
 
 
				
					| размещено: 2006-01-20,последнее обновление: 2008-07-01,
 автор: lissyara
 |  |  
 
   |   |   
 2014-07-27, lissyaragmirror
 Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
 2013-08-20, zentarimScan+Print server FreeBSD 9
 Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
 2011-11-20, BlackCatРазъём на WiFi-карту
 Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
 2011-09-14, manefestoНастройка git+gitosis
 Настройка системы контроля версия исходного кода в связке git+gitosis+ssh 
 2011-08-14, zentarimWi-FI роутер + DHCP + DNS
 Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
 2011-06-15, -ZG-Охранная система на FreeBSD+LPT
 В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
 2011-03-13, terminusng_nat
 Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
 2011-02-20, КапитанNagios+Digitemp
 Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
 2011-02-17, Le1Zyxel Configuration
 Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
 2011-02-16, foxhast carp zfs ucarp cluster
 HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
 2011-02-04, BlackCatВосстановление ZFS
 История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
 2011-02-03, Капитан1-Wire
 Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
 2011-01-28, КапитанТемпература в серверной
 Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
 2011-01-21, m4rkellSyslog server
 Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
 2011-01-07, lissyaraCanon/gphotofs
 Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
 2010-12-13, AlIPSec
 Описание принципов работы IPSEC и способов аутентификации.
 
 | 
	
		| 
	
		| 
			
				
					| Статистика сайта |  
					| Сейчас на сайте находится: 13 чел. |  
					| За последние 30 мин было: 72 человек |  
					| За сегодня было11729 показов,
 1649 уникальных IP
 |  |  |  |   Этот информационный блок появился по той простой причине,
			что многие считают нормальным, брать чужую информацию не уведомляя автора
			(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
			Я не против распространения информации — только за. Только условие простое — извольте
			подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
			незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
			Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
 © lissyara 2006-10-24 08:47 MSK
			
 |   | 
		
		 |