Category Archives: FreeBSD

Ресайзване на хард диск под FreeBSD

Преди време бях инсталирал FreeBSD на една тестова виртуална машина (Hyper-V), която в последствие се наложи да вкарам в употреба. Както се очакваше, в един момент дисковото пространство се оказа, че е малко и се наложи да увелича размера на диска. Тук ще опиша стъпките по ресайзване след като бях увеличил размера на  диска в Hyper-v:

Първо се ориентираме в дяловете (партишъните) на диска:

root@freebsd:/root# gpart show da0
=>       3 130023413 da0 GPT (62G)
         3 130 1 freebsd-boot (65K)
       133 2097152 2 freebsd-swap (1.0G)
   2097285 125829115 3 freebsd-ufs (60G)
 127926400 2097016 - free - (1.0G)

Тук забелязваме, че суоп дяла е преди freebsd-ufs, което за мен е много добре – няма да се налага да трия суопа и след това да го създавам наново.

Ако диска е форматиран с GPT схема на дяловете е възможно да бъде показан като “corrupted”, но не е драма – оправя се с:

root@freebsd:/root# gpart recover da0

В моят случай, а и в случаите, когато суоп дяла е преди ufs дяла изпълняваме следната команда:

root@freebsd:/root# gpart resize -i 3 -a 4k -s 60G da0

Където -i указва дяла, който ще преоразмеряваме (в моят случай 3),  По избор подреждането на дяла се указва с -a (в случая 4k), а новият размер на дяла се указва с -s (в случая 60GB) и накрая е името на диска (da0).

И накрая разширяваме файловата система (в моя случай UFS) за да може да използва новия капацитет:

root@freebsd:/root# growfs /dev/gpt/rootfs

И всичко е готово.

Но ако при Вас, суоп дяла е след freebsd-ufs, преди да изпълним командата gpart resize -i 3 -a 4k -s 60G da0 трябва да минем през:

root@freebsd:/root# swapinfo
root@freebsd:/root# swapoff /dev/da0p3
root@freebsd:/root# gpart delete -i 3 da0

Първата команда ще покаже къде е монтиран суоп дяла (в примера е дял 3). Следващата команда ще изключи суопа и третата команда ще изтрие суоп дяла (в случая 3). Тук много внимавайте, защото може да изтриете freebsd-ufs дяла и тогава може да Ви спаси само рестор от бекъп!  

Ако след gpart delete командата, получите отговор table ‘da0’ is corrupt, изпълнете командата:

root@freebsd:/root# gpart recover da0

 

След gpart resize -i 3 -a 4k -s 60G da0 трябва да изпълните:

root@freebsd:/root# gpart add -t freebsd-swap -a 4k da0
root@freebsd:/root# swapon /dev/da0p3
root@freebsd:/root# gpart show da0

Първата команда възстановява суоп дяла, втората го включва, а с третата се убеждаваме, че всичко е наред.

 

 

 

 

 

 

Управление на софтуер във FreeBSD

Тази кратка статия демонстрира как да направите почистване на пакетната система и портнатите приложения на FreeBSD, с цел възстановяване на дисково пространство.

В същото време системата се актуализира и целият неизползван софтуер се премахва.

Целият процес е разделен на серия от интерактивни стъпки, които са описани подробно по-долу.


Актуализиране на пакети:

root@FreeBSD:/root# pkg update

root@FreeBSD:/root# pkg upgrade

Проверка на интегритета на инсталираниоте пакети и зависимостите:

root@FreeBSD:/root# pkg check -sa

root@FreeBSD:/root# pkg check -da

Първата команда проверява чек сумите на всички инсталирани пакети, а втората проверява зависимостите и инсталира липсващите.

 

Следващата команда маха неизползваните пакети или такива, които не са необходими:

root@FreeBSD:/root# pkg autoremove

!!! Използвайте много внимателно, защото често се случва pkg autoremove да изтрие пакет, който се използва, но е инсталиран като зависимост!!!

Преди да използвате pkg autoremove, препоръчвам да използвате:

root@FreeBSD:/root# pkg autoremove -n

Което ще покаже кои пакети ще бъдат премахнати, без да ги премахва.

Почистване на кеша на свалените пакети:

root@FreeBSD:/root# pkg clean

Тази команда изтрива предишните версии на изтеглените пакети. Ако искате да изтриете целия кеш, стартихрайте:  

root@FreeBSD:/root# pkg clean -a.

Ъпдейт на портнатите приложения: При свежа инсталация е необходимо да се убедите, че директорията /usr/ports е празна.

root@FreeBSD:/root# rm -fr /usr/ports/*

След това инсталирате git:

root@FreeBSD:/root# pkg install git

След това инсталирате новата колекция от портнати приложения:

root@FreeBSD:/root# git clone https://git.freebsd.org/ports.git /usr/ports

Това се прави еднократно на свежа инсталация на FreeBSD. След това само се ъпдейтва:

root@FreeBSD:/root# cd /usr/ports/
root@FreeBSD:/usr/ports# git pull

 

След това, ако смятате да използвате колекцията от портнати приложения, трябва да инсталирате portmaster:

root@FreeBSD:/root# cd /usr/ports/ports-mgmt/portmaster/
root@FreeBSD:/usr/ports/ports-mgmt/portmaster# make install clean

root@FreeBSD:/root# portmaster --check-depends

Тази команда проверява зависимостите при инсталираните приложения през колекцията от портнати приложения.

Търси остарели записи в дървото на портовете:

root@FreeBSD:/root# portmaster -y --check-port-dbdir

Почиства портове, които вече не са необходими и зависимости, заедно с несвързани изходни файлове към инсталиран порт:

root@FreeBSD:/root# portmaster -y -s

Почиства изходните файлове:

root@FreeBSD:/root# portmaster -y --clean-distfiles

Ако това е стара система, минала през няколко миграции, може да е по-лесно да изтриете всички изходни файлове ръчно:


root@FreeBSD:/root# rm -fr /usr/ports/distfiles/*

Ако искате можете да вкарате всичко това във скрипт (аз лично не Ви съветвам да го правите) но, ако все пак някой иска:

!/bin/sh



pkg update -q
pkg upgrade -y
pkg check -qy -sa
pkg check -qy -da
pkg autoremove -qy
pkg clean -qy
portsnap fetch update
portmaster --check-depends
portmaster -y --check-port-dbdir
portmaster -y -s
portmaster -y --clean-distfiles