Posty dodane przez Danloona

    Krążąc po internecie pewnie nie raz natknęliście się na pojęcie Hackintosh. Czym jest więc ten Hackintosh i do czego służy? Zapraszam do wpisu.


    Hackintosh kombinacja słów hack i Macintosh, jest to nazwa komputera PC na którym jest uruchomiony system od Apple macOS. Zacznijmy więc troszkę od historii… no więc gdy Apple zdecydowało się przejść w 2005 roku na procesory Intela x86 z PowerPC, musieli oni wykorzystać w tym celu oprogramowanie podobne do tego co jest w komputerach klasy PC. Ten ruch pozwolił na odnalezienie kilku sposobów na instalację systemu Apple na komputerach niepochodzących od Apple.


    Więc jak to się zaczęło? 6 czerwca 2005 Apple ogłosiło plany przejścia na procesory Intel x86 na swojej konferencji WWDC i stworzyło prototypowego Maca bazującego na Intelu dla wybranych deweloperów kosztował on 999$ (odpowiednio $1,390$ na rok 2021). Odrazu podjęto próby uruchomienia Mac OS X na sprzęcie nie pochodzącym od Apple, ale programiści szybko natrafili na komunikaty o błędach gdzie wspominano, że konfiguracje PC będą nie wspieranie. 10 stycznia 2006 roku, Apple wydało Mac OS X 10.4.4 Tiger z obsługą pierwszych Maków bazujących na Intelu, iMaca i Macbooka Pro. 14 lutego 2006 roku pierwszy hackintosh ujrzał światło dzienne za sprawą programisty o nicku crg92, w ciagu kilku godzin Apple wydało aktualizacje 10.4.5, która została złamana w przeciągu dwóch tygodni. Do wersji 10.4.8 wszystkie łatki przeznaczone dla Hackintosha korzystały z jądra systemu pochodzącego z 10.4.4, stety niestety nowsze wersje systemu wymagały nowszych wersji jądra systemowego.


    Tak wyglądał pierwszy Mac oparty na procesorze Intela. Dzięki pracy wielu użytkowników, udało się stworzyć dystrybucje do instalacji macOS na PC, najbardziej w tamtym okresie wyróżniała się dystrybucja stworzona przez JaS, następnie iATKOS, iDeneb.

    Dystrybucje potem wymarły gdzie zostały zastąpione nowymi bootloaderami i metodą instalacji typu Vanilla. Dużo się zmieniało między wersjami i metodami stawiania Hackintosha największym kamieniem milowym pozostaje jednak Mac OS X 10.4, ze swojej pamięci mogę powiedzieć, że prawdziwe instalacje Vanilla zaczęły się gdzieś od 2009 z wyjściem Mac OS X 10.6 Snow Leopard.


    Na czym to polega? Proces budowy Hackintosha, polega na dobraniu odpowiedniego sprzętu do tego celu, płyty głównej, karty graficznej, dysków, zbliżonego do oficjalnego sprzętu Apple oraz oprogramowania. Zadanie to nie jest zbyt proste ponieważ, macOS jest dość wybredny jeśli o sprzęt chodzi, w najnowszych wersjach macOS nie działają np. Karty nVidii lub zintegrowanie układy graficzne Intela od 11 generacji, a w jeszcze innych przypadkach karty intela potrafią sypać artefaktami. Oficjalnie możemy uruchomić Hackintosha na procesorach do 10 generacji, nieoficjalnie dzięki społeczności możemy uruchomić Hackintosha nawet na procesorach 12 generacji, niestety z pewnymi ograniczeniami. Dzisiaj sam proces instalacji jest troszkę prostszy niż kiedyś, musimy się zdecydować na boot loader, wersję systemu, kexty(odpowiednik sterowników z windows). Na dzień dzisiejszy wyróżniamy dwa bootloadery:

    • OpenCore – nowszy, o wiele bardziej przejrzysty i szybszy
    • Clover – starszy, mniej przejrzysty, i troszkę wolniejszy, za to prostszy w konfiguracji

    Są jeszcze takie mniej znane jak:

    • Enoch, kontynuacja chameleona
    • Osmosis
    • Chameleon (osoby które stawiały Hackintosha na 10.5/10.6 będą go kojarzyć)

    Warto zwrócić uwagę, że dzisiaj popularną metodą jest instalacja Vanilla, czyli instalacja czysta niezmodyfikowana, najczęściej instalator pobiera się za pomocą App Store na prawdziwym maku, lub z użyciem skryptów przeznaczonych do tego np. gibMacOS. Z pewnych względów nie będę tutaj publikował jak przeprowadzić pełną instalacje Hackintosha, ze względu, że dla każdego ten proces może być inny a tym samym ciężko objąć wszystko jednym uniwersalnym poradnikiem. Mogę natomiast polecić dokumentację ze strony Dortania, są tam opisane metody stawiania Hackintosha via OpenCore jak i również pod większość generacji procesorów Intela.


    Dla kogo jest Hackintosh? Szczerze powiedziawszy, jest to kwestia bardzo ciężka do rozwiązania, z jednej strony jest to fajna opcja żeby poznać i zrozumieć swój sprzęt, z drugiej strony ból dupska jeśli coś nie chce działac z nieznanego nam powodu. Uważam, że Hackintosh jest bardziej dla osób, którym nie leży konfiguracja komputerów Apple lub ich cena, może również być to powód ze jednym nie leżał windows, tak jak na przykład mi. Szczerze powiedziawszy postawiłem wiele Hackintoshy rożnymi metodami, i często gęsto jest to droga przez mękę jeśli coś w naszej specyfikacji nie będzie odpowiadało macOSowi, a mogą to być tak błache rzeczy jak dysk NVMe. Ja używam Hackintosha od przynajmniej 6 lat, aktualnego Hackintosha mam postawionego na OpenCore , działa całkiem fajnie i stabilnie. Na przestrzeni ostatnich lat popularność Hackintosha dość spadła, a to za sprawą przejścia Apple na swoje własne procesory Apple Silicon, oraz cen komponentów w ostatnich czasach, z czasem Hackintosh pewnie umrze za sprawą wygaszania wsparcia dla Intela. Co do legalności takiego rozwiązania, jest to tak jakby szara strefa, tzn. jak używasz prywatnie to nic nie powinno się stać, ale jeśli w firmie no to już może być problem, ponieważ licencja Apple zabrania instalacji systemu macOS na komputerach innych niż te stworzone przez Apple.


    Gdzie zaczerpnąć wiedzy? Na ten moment w Polskim internecie możemy zaczerpnąć wiedzy w dwóch miejscach, które są jeszcze w miarę aktywne. Jest to grupa na Facebooku o nazwie Hackintosh Polska jak i również ich strona. Są jeszcze pomniejsze fora Polskie takie hamac.pl i hackintoh.com.pl. Natomiast personalnie od siebie nie polecam korzystać z narzędzi tonymacosx86, uczą one złych nawyków i powodują to, że po każdej aktualizacji może się nam rozkraczyć system, sama strona jest bardzo dobrym źródłem informacji na temat hackintosha. Dajcie znać co Wy sądzicie na temat hackintosha, i czy używacie albo używaliście?

    W dzisiejszym w wpisie zajmiemy się pozostałymi zagadnieniami związanymi z nextCloudem.
    Skupimy się na instalacji REDISa, tuningu PHP-FPM oraz tuningu configa nextclouda.
    Zapraszam do dalszej części przygód z nextCloud.


    Pierwszym krokiem, który powinniśmy wykonać, będzie podłączenie się do VM na której zainstalowaliśmy nextCloud w poprzedniej części.


    Instalacja REDISa i dodanie go do autostartu.
    Następnie przechodzimy do instalacji usługi REDIS-a, w tym przypadku, ponownie korzystanie z REMI REPO.

    Code
    1. dnf module enable redis:remi-6.2

    a następnie wykonujemy polecenie

    Code
    1. yum install -y redis && systemctl enable redis && systemctl restart redis

    po wykonaniu powyższego polecenia, REDIS zostanie zainstalowany, dodany jako usługa autostartowa, oraz uruchomiony. na potrzeby wpisu zakładam, że tylko nextCloud będzie korzystał z tej instancji REDISa, dlatego nie ma potrzeby wykonywania dodatkowej konfiguracji dla REDISa po stronie samego REDISa.


    Tuning PHP-FPM, czyli jak zrobić aby PHP wykorzystywało poprawnie zasoby na naszej VMce? W tym celu wchodzimy sobie na tą stronę. Ustawiamy parametry wg. konfiguracji naszej VMki.


    Tak to wygląda w moim przypadku. Wyliczone wartości, wpisujemy do pliku /etc/php-fpm.d/www.conf Zapisujemy plik i restartujemy php-fpm, komendą systemctl restart php-fpm Voila, PHP-FPM z tuningowane.


    Tuning opCache dla PHP Ten etap, jest opcjonalny, zalecany jest tylko do dużych konfiguracji, gdzie będzie wielu użytkowników. Przechodzimy do pliku /etc/php.d/10-opcache.ini Szukamy linijki opcache.save_comments powinna być ustawiona na 1 domyślnie, więc ją odkomentowywujemy. Ta linijka usuwa komentarze z plików php w celu przyspieszenia ładowania i szybszego wykonywania skryptów. następna linijka która nas interesuje to opcache.revalidate_freq, która to domyślnie będzie ustawiona na 2, i zakomentowana. Odkomentowywujemy, następnie ustawiamy jej wartość na 60. Możemy również ustawić tą linijkę na 0, wtedy wszystkie zmiany wprowadzone do pliku config.php w nextcloudzie, będą wymagały każdorazowego przeładowania php-fpm. Zapisujemy plik i tak samo restartujemy php-fpm.


    Konfiguracja nextCloud dla REDISa i przyjazne URL-e Ostatnim krokiem, jaki będziemy musieli wykonać jest spięcie nextclouda z REDISem i poprawienie kilku niuansów, które się nam wyświetlały. W tym kroku musimy otworzyć plik konfiguracji nextclouda. Jeśli robiliśmy wszystko tak samo jak w poprzedniej części ścieżką do tego pliku będzie /var/www/html/config/config.php Dopisujemy linijkę'default_phone_region' => 'PL', w celu wybrania domyślnej lokalizacji dla numerów telefonu. w celu dodania obsługi REDISA dopisujemy te linijki

    Code
    1. 'memcache.local' => '\\OC\\Memcache\\Redis',
    2. 'memcache.distributed' => '\\OC\\Memcache\\Redis',
    3. 'redis' =>
    4. array (
    5. 'host' => '127.0.0.1',
    6. 'port' => 6379,
    7. ),
    8. 'memcache.locking' => '\\OC\\Memcache\\Redis',


    Oraz aby mieć obsługę przyjaznych urli 'htaccess.RewriteBase' => '/', Nasz plik powinien wyglądać mniej więcej tak:



    Zapisujemy plik. Teraz musimy odświeżyć konfiguracja .htaccess tak aby uzyskać przyjazne url-e w tym celu wykonujemy polecenie.


    Code
    1. sudo -u apache php /var/www/html/occ maintenance:update:htaccess

    Po wykonaniu tego polecenia, przechodzimy do /settings/admin/overview na naszej instancji nextCloud. Naszym oczom powinna się ukazać strona nie zawierająca błędów.



    Ze względów oczywistych nie mamy jaki poprawić tutaj błędu dotyczącego braku SSLa, ale to już każdy musi we własnym zakresie ogarnąć. To wszystko, dzięki temu mamy instancje nextCloud skonfigurowaną wg. wszystkich zaleceń producenta aplikacji tak aby ona działała poprawnie. Dajcie znać czy chcielibyście część trzecią w której byśmy się skupili na wtyczkach do nextclouda.

    Wielu z was pewnie słyszało o nextCloudzie, ale jak wielu z was wie jak poprawnie go zainstalować i skonfigurować? Po internecie krąży wiele poradników jak to zrobić, ale nie uwzględniają one w pełni dedykowanej konfiguracji pod tą platformę. Dzisiaj skupimy się na tym jak skonfigurować dedykowaną maszynę wirtualną pod nextCloud.


    We wpisie nie jest opisana konfiguracja postfixa/sendmaila na potrzeby wysyłki maili. Podstawą będzie stworzenie maszyny wirtualnej lub kontenera z dowolną dystrybucją GNU/Linuxa na potrzeby wpisu zostanie wykorzystany CentOS 8 Stream (Minimal) oraz decyzja jaką wersję nextClouda będziemy chcieli zainstalować.


    Każda wersja ma inne wymagania odnośnie wersji PHP zalecanej do niej. Zajrzyj na LISTĘ WSPIERANYCH WERSJI NEXTCLOUD aby dowiedzieć się więcej na potrzeby wpisu skorzystamy z wersji 24. Dla wersji 24 będziemy potrzebowali:


    • Apache 2.4.x
    • MariaDB 10.5.x
    • PHP 8.0.x
    • Dla mniejszego oporu, możemy również wyłączyć SELINUXa (co w tym wpisie zostało wykonane).

    Przygotowanie środowiska Jeśli już zdecydowaliśmy się na wersję przechodzimy do instalacji paczek w systemie potrzebnych do przygotowania środowiska. Przełączmy wersję MariaDB na 10.5 w tym celu korzystamy z polecenia
    i zatwierdzamy Y. następnie wykonujemy polecenie

    Code
    1. yum install epel-release httpd mariadb mariadb-server wget -y


    w celu instalacji repo epela webservera Apache 2.4 i bazy MariaDB. Po wykonaniu i zainstalowaniu paczek odpalamy i dodajemy do autostartu kilka usług poprzez użycie komendy

    Code
    1. systemctl enable httpd mariadb && systemctl restart httpd mariadb

    Dodajemy do wyjątków na zaporze firewall usługi http i https w tym celu używamy komendy

    Code
    1. firewall-cmd --zone=public --add-service=http --add-service =https --permanent && firewall-cmd --reload

    A następnie mysql_secure_installation w celu podstawowej konfiguracji serwera MariaDB, uzupełniamy hasło i większość rzeczy zostawiamy domyślnie. (Opcjonalnie) W celu łatwiejszej administracji bazą danych z CLI tworzymy w katalogu /root plik o nazwie .my.cnf z zawartością:

    Code
    1. [client]
    2. user=root
    3. password=nasze_haslo_do_roota


    Dzięki temu zabiegowi nie będziemy musieli za każdym razem wpisywać hasła roota, gdy będziemy chcieli się dostać do bazy danych.
    Następnie przejdziemy sobie do instalacji repozytorium REMI w celu uzyskania PHP w wersji 8.0.
    W tym celu wykonujemy polecenie

    Code
    1. rpm -ivh http://rpms.remirepo.net/enterprise/remi-release-8.rpm

    Następnie włączmy php z repozytorium remiego komendą dnf module enable php:remi-8.0(podczas zmiany tego ustawienia możemy zostać zapytani o klucze GPG na które wyrażamy zgodę). Następnie instalujemy PHP8 z modułami, do tego używamy następującej komendy

    Code
    1. yum install php php-mysql php-gd php-dom php-mbstring php-json php-zip php-xml php-session php-process php-redis php-bz2 php-intl php-gmp php-bcmath php-exif php-imagick -y

    Moduły dobrałem dla zalecanej instalacji w naszym wpisie, jeśli zajdzie potrzeba że będziesz potrzebował/a innych modułów możesz dopisać je doinstalować. Po instalacji wykonujemy polecenie

    Code
    1. systemctl enable php-fpm && systemctl restart httpd php-fpm

    Teraz możemy się upewnić, czy PHP ładuje się poprawnie poprzez stworzenie pliku pi.php w katalogu /var/www/html/pi.php z zawartością:

    PHP
    1. <?php
    2. phpinfo();
    3. ?>


    Podstawowy tuning środowiska na potrzeby nextCloud Po instalacji wykonujemy drobny tuning środowiska, poprzez usunięcie pliku welcome.conf z /etc/httpd/conf.d/welcome.conf Następnie w pliku /etc/httpd/conf/httpd.conf szukamy linijki AllowOverride dla katalogu /var/www/html i ustawiamy ją na All. Na końcu pliku dodajemy linijkę Timeout 900


    Zapisujemy i przechodzimy do pliku /etc/php.ini i szukamy linijki max_execution_time i ustawiamy ją na 900 następnie szukamy memory_limit i ustawiamy ją na 512M następnie szukamy post_max_size i ustawiamy ją na 1G tak samo dla upload_max_filesize Zapisujemy pliki i wykonujemy komendę systemctl restart httpd php-fpm Ustawianie Timeoutow może niebyć koniecznie w przypadku szybszych serwerów.



    Prawidłowo zainstalowane PHP 8.0 powinno wyglądać tak jak na powyższym zrzucie ekranu. Możemy w takim razie przejść do przygotowywania bazy danych pod nextclouda, w tym celu wchodzimy do CLI MariaDB używając komendy mysql. Tworzymy bazę danych o nazwie nextcloud korzystając z polecenia

    Code
    1. CREATE DATABASE nextcloud;

    Następnie tworzymy użytkownika do tej bazy korzystając z polecenia


    Code
    1. CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'mojetajnehaslo123';

    Musimy również nadać uprawnienia nowo stworzonemu użytkownikowi do bazy nextcloud, w tym celu używamy polecenia

    Code
    1. GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON nextcloud.* TO 'nextcloud'@'localhost';

    Po wykonaniu powyższych czynności możemy opuścić CLI MariaDB korzystając z polecenia exit.


    Instalacja nextCloud Możemy w takim razie przejść do instalacji nextclouda, w tym celu pobieramy plik setup-next cloud.php ze strony nextcloud, pobieramy go do katalogu /var/www/html/setup-nextcloud.php. Następnie nie uruchamiamy jeszcze instalatora w przeglądarce, musimy z edytować plik setup-nextcloud.php w celu wybrania wersji 24, domyślnie jest pobierana zawsze najnowsza. W tym celu korzystamy z naszego ulubionego edytora i szukamy linijki define(‚NC_VERSION’, ‚latest’); i zmieniamy latest na latest-24, następnie zapisujemy i możemy wykonać plik w przeglądarce.



    Niestety po kliknięciu Next dostaniemy błąd o braku możliwości zapisu w celu naprawy wykonujemy polecenie

    Code
    1. chown -R apache. /var/www/html

    Polecenie zmienia właściciela katalogu, na apache. Teraz możemy wrócić i załadować instalator ponownie, tym razem zostaniemy zapytani o wskazanie ścieżki której będziemy chcieli użyć do instalacji nextcloud, w naszym przypadku będzie to porostu kropka. Po chwili oczekiwania powinniśmy zostać przywitani informacją że instalacja się powiodła. Następnym ekranem będzie konfiguracja konta administratora i bazy danych, wypełniamy pola według kroków, które poczyniliśmy wcześniej, następnie klikamy zakończ instalację, tutaj po dłuższej chwili powinien nas przywitać ekran instalacji dodatkowych modułów do nextcloud, wedle uznania możemy je zainstalować lub nie. We wpisie pominiemy instalację tych dodatkowych modułów w tym przypadku klikamy przycisk Anuluj.



    Zamykamy okienko używając X, klikamy na swój awatar, i przechodzimy do ustawień, następnie do sekcji Przegląd.



    W sekcji przegląd przywita nas kilka problemów, które będziemy rozwiązywać w dalszej części wpisu. Możesz sobie pogratulować poprawnej instalacji nextCloud oraz zacząć korzystać z podstawowych funkcji nextCoud. W następnej części wpisu zajmiemy się konfiguracją REDISa czyli Pamięci Podręcznej oraz tuningiem PHP-FPM na potrzeby nextCloud.

    Pewnie wielu z was zauważyło, że Proxmox w przypadku ZFS zjada dużo pamięci RAM. Skupimy się dzisiaj na pewnym prostym triku, który pozwoli wam zaoszczędzić trochę pamięci. Zapraszam jednak do dalszej części wpisu!


    Nie zalecam stosowania tej metody na serwerach z dużą ilością VM-ek, ponieważ może jednak zaburzyć to stabilność takich serwerów, zalecam jednak przetestowanie we własnym zakresie. Najpierw przejdźmy do weryfikacji aktualnej alokacji pamięci dla ZFS. Możemy do tego użyć komendy arc_summary.



    Interesuje nas kategoria ARC size (current). W drobnym uproszczeniu rozwinę najbardziej interesujące nas opcje.

    • Min size (hard limit) – jest to limit początkowy, który będzie rezerwowany przez ZFS na początku uruchomienia systemu.
    • Max size (high water) – jest to limit maksymalny pamięci, który będzie mógł wykorzystać ZFS w moim przypadku ustawiłem na 2GB.

    Aby ustawić limity pamięci dla ZFS musimy stworzyć plik dla modprobe /etc/modprobe.d/zfs.conf Jako zawartość pliku wpisujemy


    Code
    1. options zfs zfs_arc_min=268435456 options zfs zfs_arc_max=2147483648


    Wartości są podane w bajtach, należy sobie je wyliczyć samemu w moim przypadku jest to 256MB i 2GB. Po zapisaniu pliku wpisujemy:

    Chciałbym wam przedstawić, nowy projekt i odsłonę mojej strony danloona.nl. Skupimy się tutaj na tematach IT oraz różnych innych zagadnieniach. Dajcie znać jakiego rodzaju wpisy by was interesowały. Domyślne będę chciał opisywać rzeczy z pogranicza pracy jako administrator systemów. Aczkolwiek jeśli będzie zainteresowanie rownież innymi dziedzinami, postaramy się je też poruszyć. Z tego bloga chciałbym uczynić miejsce gdzie, będę mógł publikować zagadnienia, które mnie interesują lub inne rzeczy również dzielić się wiedzą