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