Kopirovanie linuxoveho filesystemu, ktory program je najlepsi?
Alexandr Malusek
malusek na sysel.ujf.cas.cz
Čtvrtek Srpen 7 16:57:12 CEST 1997
kas na informatics.muni.cz (Jan Kasprzak) writes:
> Myslim, ze diry zachovava i GNU tar (volba -S), /bin/cp
> (automaticky) i GNU cpio (--sparse -- automaticky konvertuje bloky
> nul na diry).
Radsi jsem to vyzkousel, protoze na Solarisu se to chova tak, jak jsem
to popisoval. Vysledky: (sparse je puvodni deravy soubor vytvoreny
programem sp)
# dd if=/dev/zero of=zero bs=1024 count=1024
# ls -ls sparse zero
494 -rw-rw-r-- 1 root root 1000015 Aug 7 15:54 sparse
1029 -rw-rw-r-- 1 root root 1048576 Aug 7 16:06 zero
*** /bin/cp ****************************************
# /bin/cp -a sparse s1; /bin/cp -a zero z1
# ls -ls s1 z1
12 -rw-rw-r-- 1 root root 1000015 Aug 7 15:54 s1
1029 -rw-rw-r-- 1 root root 1048576 Aug 7 16:06 z1
/bin/cp tedy diry nezachovava, spise je aktivne vytvari, pokud
jiz v souboru nejake jsou. Pokud ne, tak je nevytvari. (Takto
se to chova v techto dvou pripadech, mozna to plati i pro jine
pripady)
*** tar ********************************************
# tar cvpf arch.tar --sparse sparse zero
# cd d1; tar xvpf ../arch.tar --sparse
# ls -ls sparse zero
6 -rw-rw-r-- 1 root root 1000015 Aug 7 15:54 sparse
1029 -rw-rw-r-- 1 root root 1048576 Aug 7 16:06 zero
Situace je podobna jako v pripade cp - tar diry nezachovava.
*** cpio *******************************************
# ls sparse zero | cpio -o --sparse > arch.cpio
# cd d2; cpio -i < ../arch.cpio
# ls -ls sparse zero
982 -rw-rw-r-- 1 root root 1000015 Aug 7 16:32 sparse
1029 -rw-rw-r-- 1 root root 1048576 Aug 7 16:32 zero
V tomto pripade cpio nahradil diry nulami. Neco jsem popletl, ze
--sparse nezafungovalo?
*** dump/restore ***********************************
# mkdir d3; mv sparse zero d3
# /sbin/dump 0f arch.dump `pwd`/d3
# /sbin/restore rvf arch.dump
# cd home/malusek/testy/sparse/d3
# ls -ls sparse zero
494 -rw-rw-r-- 1 root root 1000015 Aug 7 15:54 sparse
1029 -rw-rw-r-- 1 root root 1048576 Aug 7 16:06 zero
dump/restore diry zachovavaji.
Vypis programu sp.c:
#include <stdio.h>
int main()
{
FILE *fp;
int i;
if ((fp = fopen("sparse", "w")) == NULL)
{
perror("sp");
exit(1);
}
fprintf(fp, "Zacatek");
fseek(fp, 500000, SEEK_SET);
fprintf(fp, "Prostredek");
for (i = 0; i < 500000; i++)
putc('\0', fp);
fprintf(fp, "Konec");
return 0;
}
--
Alexandr Malusek (malusek na ujf.cas.cz)
UJF AV CR
Další informace o konferenci Linux