Jak przenieść / usr na nową partycję?

21

Mój folder /usr musi zostać przeniesiony do nowej partycji. Jak mogę to zrobić bez usuwania zawartości?

Czy można to zrobić podczas pracy Ubuntu, czy też potrzebuję do tego LiveCD?

    
zadawane Nathan Osman 02.08.2010, 02:21
źródło

3 odpowiedzi

24

Najbezpieczniej byłoby używać Live CD, ale można:

  • skopiuj wszystkie pliki do nowej partycji, upewniając się, że zawartość /usr nie ulegnie zmianie podczas wykonywania tej operacji.
  • edytuj /etc/fstab , aby /usr zostało zamontowane przy następnym uruchomieniu
  • uruchom ponownie
  • usuń stare pliki

Zobacz poniżej, aby uzyskać szczegółowe informacje na temat każdego kroku.

Zauważ, że nie możesz zamontować nowej partycji na /usr podczas działania, ponieważ będzie wiele plików w /usr , które będą otwarte.

Kopiowanie plików

Chciałbym użyć cp -a . -a to opcja archiwum. Na stronie podręcznika :

-a, --archive
          same as -dR --preserve=all
...
-d     same as --no-dereference --preserve=links
...
-P, --no-dereference
          never follow symbolic links in SOURCE
...
--preserve[=ATTR_LIST]
          preserve      the      specified      attributes       (default:
          mode,ownership,timestamps),  if  possible additional attributes:
          context, links, xattr, all
...
-R, -r, --recursive
          copy directories recursively

Edycja / etc / fstab

Musisz znać identyfikator UUID nowej partycji. Możesz zobaczyć mapowanie wykonując:

$ ls -l /dev/disk/by-uuid/

Następnie dodaj tę linię do /etc/fstab :

UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr           ext4    defaults        0       2

Zmień UUID na swój UUID i zmień ext4 na typ systemu plików, którego używasz - powinieneś o tym wiedzieć, jeśli skonfigurowałeś partycję.

Usuń stare pliki

Po ponownym uruchomieniu stare pliki w /usr na partycji głównej zostaną ukryte przez nową partycję zamontowaną na /usr . Ale możemy użyć mount bindery , aby uzyskać dostęp do starych plików, a następnie je usunąć.

$ sudo mount --bind / /mnt
$ sudo rm -rf /mnt/usr
$ sudo umount /mnt

Ale pewne lekkie pomyłki (powiedzmy, uderzanie Enter, gdy wpisałeś tylko sudo rm -rf /mnt ) mogą spowodować katastrofę, więc użyłbym tej metody tylko wtedy, gdybyś był bardzo pewny co robisz, naprawdę nie mógł sobie poradzić wszelkie przestoje, lub nie miały fizycznego dostępu do urządzenia, a tym samym nie mogły wystartować z Live CD lub Live USB Stick.

    
odpowiedział Hamish Downer 02.08.2010, 15:39
źródło
6

Ponieważ większość używanych bibliotek znajduje się w katalogu / usr, nie polecałbym przenosić tego katalogu podczas pracy z Ubuntu. W rzeczywistości prawdopodobnie otrzymujesz komunikaty o błędach, gdy próbujesz to zrobić. Dlatego najlepiej jest korzystać z LiveCD.

Możesz użyć kilku możliwości przenoszenia / kopiowania plików cp, rsync itp. Chcesz mieć pewność, że wszystkie dowiązania symboliczne są tworzone, a nie tylko kopiowane. cp i rsync mają do tego opcje.

Po przeniesieniu plików na drugą partycję, musisz dodać kolejny uchwyt w / etc / fstab, aby zamontować nową partycję na / usr.

    
odpowiedział txwikinger 02.08.2010, 02:36
źródło
1

Uwaga: nie mam pojęcia, co robię, po prostu kopiuję polecenia i robię to, co sugerują inni. Może to być niewłaściwy sposób, ale działa to dla mnie (przynajmniej na razie).

Tak to zrobiłem (po odpowiedzi Hamisha i komentarzach):

  1. Skopiuj wszystkie pliki nowo utworzonej partycji (zamień ją na lokalizację partycji, powinna wyglądać podobnie do mojej):

    rsync -avz /usr /media/aleksandar/750b84e2-e65f-4309-ade5-5af0033a937c 
    
  2. W tym momencie zdałem sobie sprawę, że wszystko zostało skopiowane do folderu /usr na partycji, co nie zadziała , więc skopiowałem wszystko (z menedżerem plików ) z tego folderu do katalogu głównego partycji, a następnie usunięty pusty folder.

  3. Edytuj /etc/fstab (tak samo jak w odpowiedzi Hamisha, oczywiście, zamień na swój UUID)

    UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr           ext4    defaults        0       2
    
  4. Krok, który okazał się niezbyt mądry: Zmieniłem nazwę aktualnie zamontowanej partycji /usr na /usrBACKUP , tak, że wiem, że po ponownym uruchomieniu systemu, w rzeczywistości restartuje się do nowo utworzonej partycji, a nie starej. Potem wszystko zgrzytnęło na ekranie i musiałem go wyłączyć przez długie naciśnięcie klawisza zasilania (geniusz jak ja) . Pomiń ten krok, jeśli nie chcesz zakłócać pracy systemu.

  5. Zrestartuj system

  6. Po ponownym uruchomieniu otwórz Monitor systemu lub inną podobną aplikację, aby sprawdzić, czy twoja nowa partycja /usr została zamontowana, i sprawdzić bezpieczeństwo, czy wszystko poszło zgodnie z planem.

  7. Po sprawdzeniu, czy wszystko jest w porządku, możesz usunąć swoją starą partycję /usr . Zatrzymam moje na wypadek, gdyby coś poszło nie tak.

odpowiedział Aleksandar Stefanović 03.04.2016, 12:14
źródło

Przeczytaj inne pytania na temat tagów