Je možné přesunout domovskou složku do nové instalace Ubuntu, aby byla zachována všechna nastavení a úpravy provedené uživatelem na tomto počítači? Jako když vytvořím nového uživatele na nové instalaci Ubuntu se stejným jménem a heslem jako uživatel, kterého chci přesunout na novou instalaci Ubuntu. Bude to fungovat, nebo ještě lépe, je to bezpečné?
Přijatá odpověď:
Ano. Udělal jsem to mnohokrát. rsync má režim „-a“, který zachovává vlastnictví, časy souborů, všechno. Může posílat soubory přes síť. Nebo můžete zkopírovat na externí disk ve formátu ext4 a obnovit pomocí rsync. Pamatujte, že nekopírujte běžným přetažením, použijte rsync a zachovejte archiv všech vlastností („-a“).
Předpokládejme, že my.old.computer má váš účet „myuser“.
Nastavit nový počítač my.new.computer. Vytvořte tam „myuser“. pokud jste nároční, získejte ID uživatele a ID skupiny ze starého systému a přiřaďte je při vytváření uživatelského účtu. To může snížit problémy, ale myslím, že to dělám jen proto, že jsem staromódní a tohle se jednou v roce 2005 pokazilo. Víte, co myslím o uid a gid? Čísla uživatelského účtu. Na starém systému spusťte „id myuser“ a poté, když vytvoříte nového uživatele na novém počítači, přiřadíte stejné uid a gid.
Vytvořte nějaký jiný účet na obou těchto systémech, nechceme se pokoušet kopírovat uživatelskou složku pro „myuser“, když je tento uživatel přihlášen, protože relace závisí na souborech, které zničíte. Opakujte:Pokud chcete kopírovat soubory pro účet myuser, nesmíte se přihlásit jako myuser. Na obou systémech.
Na novém systému jako root přesuňte výchozí adresář uživatele z cesty (buďte v bezpečí, nemažte!), poté vytvořte nový adresář
sudo mv /home/myuser /home/myuser.orig
sudo mkdir /home/myuser
sudo chown myuser.myuser /home/myuser
Tento poslední krok potřebujete, aby se váš běžný uživatelský účet mohl rsync
soubory dovnitř. Nechceme to dělat jako root
Poté zkopírujte složku /home/myuser
ze starého na nový pomocí rsync
příznaky -rav
.
Může odesílat soubory ze starého systému do nového systému. Na starém systému
cd /home
rsync -e ssh -ravn myuser [email protected]:/home
Kde:
-r
:rekurzivní-a
:režim archivace-v
:podrobný režim. Můžete to vynechat, půjde to rychleji. Ale s menším ujištěním.-n
:ve skutečnosti neprovádějte žádné změny
Vložil jsem -n
příznak, protože chci zkušební provoz; pokud jsou chyby, zjistíme. Po otestování spusťte stejný příkaz bez -n
vlajka.
To bude fungovat pouze v případě, že váš uživatelský účet má oprávnění ke kopírování a zápisu souborů do /home/myuser. Nejsem si úplně jistý, jak to udělat, aniž bych byl root, ale kdysi jsem to věděl a vsadím se, že tady někdo ví, co dělat.
Nebo pokud jste v novém systému, můžete kopírovat z jiného
cd /home
rsync -e ssh -rav my.old.computer:/home/myuser .
Období .
znamená aktuální pracovní adresář. Spusťte pomocí -n
nejprve zjistit, co je špatně.
Udělal jsem to mnohokrát. Ruční nastavení uid a gid by opravdu nemělo být nutné, protože kombinace ssh a rsync by měla nové soubory přiřadit správně. Jednou jsem se však spletl a všechny nové soubory se ukázaly jako použité nesprávným uživatelem. Kde očekáváte, že uvidíte výstup ls -la takto:
rw------- 1 myuser myuser 174 Aug 4 22:43 .Xauthority
vidíte čísla uživatelů, jako
rw------- 1 504 50004 174 Aug 4 22:43 .Xauthority
nebo v horším případě jméno jiného uživatele. Stává se to proto, že uid a gid skutečně určují vlastnictví souboru; lidsky čitelné jméno je povrchní.
Obvykle se z toho můžete dostat pomocí chown
, ale neuvidíte, pokud zarovnáte uid a gid.
Nedělejte si starosti, pokud se kopírování jednou nezdaří nebo udělá něco, co neočekáváte, protože vždy můžete přejít znovu. Neničíte starý počítač a nový počítač je, no, prázdný list.
Myslím, že někteří milovníci taru řeknou, že nejlepším způsobem je vytarovat starou věc, přesunout soubor tar.gz a pak jej rozšířit. V roce 2003 nebo tak nějak se nám to zdálo životně důležité, ale v poslední době metoda rsync fungovala dobře.
Mimochodem, pokud má někdo zájem dozvědět se o rsync
, man rsync
je jednou z nejlepších a nejužitečnějších manuálových stránek vůbec. Je čitelný pro člověka s množstvím příkladů a je to jeden z důvodů, proč lpím na rsync
jako záchranný člun při údržbě systému.