Home FreeBSD FreeBSD File System and SMB
FreeBSD File System and SMB

ffsinfo - программа создания дампа метаинформации UFS

E-mail Печать PDF

ffsinfo - программа создания дампа метаинформации UFS

Автор: lissyara.
Оригинал: http://www.lissyara.su/articles/freebsd/file_system/ffsinfo/

`Исчо` одна интересная програмулина для ковыряния 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/>

Обновлено 28.05.2010 13:21
 

dump (rdump) - создаёт дамп ФС

E-mail Печать PDF

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 - программа для показа информации о файловой системе

E-mail Печать PDF

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 - программа для разметки диска

E-mail Печать PDF

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 - монтирование форточных шар.

E-mail Печать PDF

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
 


Страница 1 из 3.

  • Вопросы по поводу написанных статей можно обсудить в нашем сообществе в Вконтакте / Questions about written articles can be discussed in our community in Vkontakte Вопросы по поводу написанных статей можно обсудить в нашем сообществе в  Вконтакте / Questions about written articles can be discussed in our community in Vkontakte
Яндекс.Метрика