Nowe posty

xx Debian 9 Stretch, linuxcnc i restart przy uruchamianiu (2)
Wczoraj o 21:54:36
xx Zakup sprzętu bez preinstalowanego windowsa (8)
2019-10-17, 16:50:51
xx Problem z pocztą Dovecot+Postfix+MySQL (3)
2019-10-16, 14:43:41
xx Instalacja Debian10 problem z instalacją GRUBa na RAID5 (5)
2019-10-15, 17:58:57
xx AMD Ryzen 5 3500U (11)
2019-10-14, 18:29:46
xx Konfiguracja directadmina (0)
2019-10-13, 03:18:36
xx Problem z instalacją sterowników TL-WN821N (4)
2019-10-11, 23:15:00
xx Sprzet z Linuxem (1)
2019-10-11, 10:06:24
xx nadpisanie partycji domowej (6)
2019-10-03, 03:27:28
xx Screen flickering Deepin (4)
2019-10-02, 20:32:56

Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - Paweł Kraszewski

Strony: [1] 2 3 ... 167
1
Odpowiadam: nie masz sprzętowego RAIDa.

Masz Intelowego gówno-RAIDa. To działa tak:
* BIOS tworzy kontenery na wskazanych dyskach, które są widoczne jako wskazany typ dla przerwania dostępu do dysku - dlatego BIOS potrafi zabootować z tego system. Robi to czysto programowo i nie zakładałbym, że potrafiłby zabootować się ze zdegradowanej macierzy, gdy MBR/EFI trzebaby odtwarzać z XORa. Z tego przerwania korzysta MBR/UEFI, następnie GRUB/LILO ładując do pamięci kernela i initramfs-a (tudzież ich odpowiednik z Windows).
* To jest ostatni raz, kiedy płyta w czymkolwiek pomaga.
* Kernel Linuksa (drivery producenta dla Windows) potrafią złożyć ten kontener softowo z poziomu danego systemu. W linuksie widzisz wtedy zarówno wolumeny logiczne (/dev/mdX) jak i fizyczne dyski (/dev/sdX). Gdyby to był prawdziwy RAID sprzętowy, widziałbyś całą macierz jako /dev/sdX i bez specjalnych narzędzi nie byłbyś w stanie zobaczyć dysków fizycznych.
* Korzystając z gównoRAIDa jesteś przywiązany do danego typu płyty - przełożenie dysków do innego modelu nie gwarantuje poprawnego złożenia macierzy przez BIOSa (czyli niekoniecznie się zabootouje). Linux bez problemu złoży jednak taką macierz, jak uda ci się zabootować go z zewnętrznego nośnika.

Z mojej praktyki - odpuść sobie to rozwiązanie (i tak robione programowo) i postaw całość na LVM2. Da ci to tą przewagę, że możesz per-wolumen logiczny decydować, jaki RAID to ma być (0,1,5,6,10,whatever).

Jeżeli nie jesteś jakoś specjalnie przywiązany do Linuksa, możesz zrobić FreeBSD na ZFS w RAID5.

2
Cytuj
co może być tego przyczyną?

SSH wystawione publicznie na standardowym porcie. Bad Idea™.

3
Instalacja / Odp: nadpisanie partycji domowej
« dnia: 2019-09-24, 18:08:48 »
Hasło użytkownika służy do odszyfrowania właściwego losowego klucza przechowywanego w nagłówku szyfrowanej partycji. Jeżeli uszkodzisz ten początek, znajomość hasła nic nie pomoże.

4
Instalacja / Odp: nadpisanie partycji domowej
« dnia: 2019-09-24, 15:41:00 »
Jeżeli partycja była szyfrowana a teraz nie jest, to odstrzeliłeś klucze kryptograficzne składowane na jej początku i dane są nie do odzyskania - chyba że złamiesz AES256-XTS z całkowicie losowym kluczem.

5
Inne / Odp: Problem z uruchomieniem Kali Linux!
« dnia: 2019-09-20, 06:51:02 »
+1 @pavbaranov

Plus, Kali nie jest systemem ogólnego przeznaczenia i przez konstrukcję wewnętrzną i nietypowe (w szczególności potencjalnie niebezpiecznie, w sensie narażające własnego użytkownika) uprawnienia nie nadaje się na główny system operacyjny.

Ale to jest w FAQ na stronie Kali, tego nikt nie czyta, w szczególności osoby nie mające wiedzy do właściwego z niego korzystania.

6
X Serwer / Odp: Serwer do Nauki
« dnia: 2019-09-05, 07:24:56 »
Tu nie chodzi o uraziłem czy nie (odp: nie)... To jakbyś się zapytał, czego się uczyć, żeby zostać doktorem. To ja się pytam jakim doktorem? Medycyny? Filozofii? Matematyki? Prawa? A ty, że nie wiesz i na początek spróbujesz doktora z marketingu.

7
X Serwer / Odp: Serwer do Nauki
« dnia: 2019-09-03, 18:55:17 »
Cytuj
poszerzyć swoją wiedzę dotyczące konfiguracji serwerów
Jakich serwerów, na rany Linusa?
Poczta? WWW? DNS? Counter Strike? Jabber? AD? LDAP? FTP? JavaEE? ASP?

Cytuj
Hejka Panowie
Nieśmiało zaznaczam, że niewiasty urody przecudnej też są użytkowniczkami Forum.

8
/dev/null / Odp: studia - drugi kierunek, inna uczelnia
« dnia: 2019-09-03, 18:52:27 »
Człowieku, patrz na daty postów, na które odpowiadasz. Pacjent pytał się prawie równo 10 lat 6 miesięcy temu. Już dawno skończył wszystkie planowane szkoły...

9
*Ubuntu / Odp: Lubuntu 19.04 problem z wklejeniem tekstu do ssh
« dnia: 2019-08-28, 18:10:20 »
1. Po co putty pod Linuksem??????
2. Rozwiązanie dla 18.10, ale też powinno działać.

10
Bash, skrypty powłoki / Odp: Operacje na bitach.
« dnia: 2019-08-10, 21:44:36 »
Można np tak (Rust stable):
use std::{
    fs::File,
    io::{BufWriter, Result, Write},
};

fn add_data<W>(f: &mut W, dict: &str, len: u8, prefix: &str) -> Result<()>
where
    W: Write,
{
    // Po kolei dla każdego znaku słownika
    for i in dict.chars() {
        // Wpis składa się z dotąd wyliczonego przedrostka i znaku słownika
        let curr = format!("{}{}", prefix, i);

        if len <= 1 {
            // Jeżeli to ostati znak danego "słowa", zapisz je do pliku
            writeln!(f, "{}", curr.as_str())?;
        } else {
            // Jeżeli nie, wywołaj rekurencyjnie ze słowem jako prefiksem
            add_data(f, dict, len - 1, curr.as_str())?;
        }
    }
    Ok(())
}

fn main() -> Result<()> {
    // Pomijamy args(0) (nazwa pliku)
    let mut args = std::env::args().skip(1);

    // jak w ogóle nie ma len to ustawiamy na 8, jak jest na sparsowany string
    let len = args
        .next() // Następny element args
        .unwrap_or("8".to_string()) // Jeżeli nie ma, to zastąp 8-ką
        .parse::<u8>() // Sparsuj jako u8
        .expect("Bledna dlugosc"); // Jak się nie uda sparsować, wyświetl błąd

    // jak w ogóle nie ma dict to ustawiamy na "01", jak jest na podany string
    let dict = args
        .next() // Następny element args
        .unwrap_or("01".to_string()); // Jeżeli nie ma, to zastąp "01"

    // Nazwa pliku zawiera max długość i słownik
    let fname = format!("dict_{}_{}.txt", len, dict);

    // Otwieramy buforowany plik wyjściowy
    let mut file = BufWriter::new(File::create(fname)?);

    // Jedziemy długości od 1 do len włącznie (to ten = po ..)
    for clen in 1..=len {
        add_data(&mut file, dict.as_str(), clen, "")?;
    }
    Ok(())
}
i test (tutaj słownik podajemy bez spacji!)
> time target/release/rust_dict_gen 6 0123456789ABCDEF
2,91s user 0,05s system 99% cpu 2,963 total

> ls -al dict_6_0123456789ABCDEF.txt
-rw-r--r--  1 pawel  pawel  124076832 10 sie 21:39 dict_6_0123456789ABCDEF.txt

> wc -l dict_6_0123456789ABCDEF.txt
 17895696 dict_6_0123456789ABCDEF.txt


11
Bash, skrypty powłoki / Odp: Operacje na bitach.
« dnia: 2019-08-10, 20:29:34 »


W BASH-u robisz takie rzeczy in-memory???

#!/usr/bin/env bash

BITS=${1:-8}
shift

if [ "$1" ]; then
DICT="$@"
else
DICT="0 1"
fi

next_gen() {
local PREV=$1
local THIS=$2

if [ "$PREV" -a -f "$PREV" ]; then
# Jest poprzednia generacja, powiel ją po kolei z każdym
# elementem słownika
for S in $DICT; do
sed "s/^\\(.*\\)\$/$S\\1/" "$PREV" >> "$THIS"
done
else
# Nie ma - zacznij od słownika
for S in $DICT; do
echo $S >> "$THIS"
done
fi
}

PREV=""

# Pojedź kolejne generacje
for THIS in $(seq -w $BITS); do
next_gen "part_${PREV}.txt" "part_${THIS}.txt"
PREV=$THIS
done

# Zrób jeden plik z wynikiem
cat part_*.txt > dict.txt
rm -f part_*.txt
i teraz
./gen.sh   # generacja ciągów 1..8 bitów
./gen.sh  4 # generacja ciągów 1..4 bitów
./gen.sh  10 # generacja ciągów 1..10 bitów
./gen.sh  4 a b c # generacja ciągów 1..4 znakowych kombinacji  słownika a b c
./gen.sh  6 0 1 2 3 4 5 6 7 8 9 A B C D E F  # generacja ciągów 1..6 cyfrowych liczb szesnastkowych
ostatni:
> time ./gen.sh 6 0 1 2 3 4 5 6 7 8 9 A B C D E F

46,22s user 0,13s system 99% cpu 46,364 total

> ls -al dict.txt
-rw-r--r--  1 pawel  pawel  124076832 10 sie 20:26 dict.txt

> wc -l dict.txt
 17895696 dict.txt

12
Bash, skrypty powłoki / Odp: Operacje na bitach.
« dnia: 2019-08-10, 06:21:13 »
Dla mnie otworzyć to otworzyć. Plik może mieć i 100TB, ale otwarcie go nie robi nic, co mierzalnie zwiększyłoby zajętość pamięci (pewnie kernel zajmie 1 stronę, 4kB, albo i nie).

Inna sprawa to wczytać cały plik do pamięci. No tu nic nie zrobisz.

* Co to za plik, że z Basha po nim jeździsz? Jakiś tekst, czy binarka?
* Jakie naprawdę operacje na nim chcesz robić (bo że wczytać całość do RAM to już wiemy)

Co do dostępu z poziomu basha do wielkiego pliku binarnego: możesz używać polecenia dd do czytania fragmentu pliku od bajtu X o długości Y bajtów i do nadpisania bloku w istniejącym pliku od bajtu Z.

Co do dostępu do wielkich plików z poziomu "normalnych" języków, do tego służy mmap, otwierasz plik i mapujesz go do pamięci jako tablicę. I tu jest magia, on nie musi się mieścić w pamięci, kernel sam ładuje do przestrzeni wirtualnej fragmenty, do których piszesz i czytasz, potencjalnie usuwając fragmenty, do których nie odnosiłeś się przez jakiś czas (takie LRU).
Jak masz struktury (np C) stałej długości i bez wskaźników (czyli struktura zawiera w sobie wszystkie dane i są tylko elementu typu char imie[32] a nie ma żadnych typu char * imie), to możesz zmmapować tablicę takich struktur na plik i mieć taką bieda-bazę danych indeksowanych integerem.

13
Inne / Odp: Najlepsze słuchawki do trawmaju
« dnia: 2019-07-30, 15:45:03 »
Nie dousze a wokółuszne: Sennheiser HD 4.50 BTNC.

14
XFCE / Odp: Info w .xsession-errors
« dnia: 2019-07-21, 20:27:16 »
Od jakiegoś czasu pojawia mi się w .xsession-errors taka informacja
/usr/bin/iceauth:  creating new authority file /run/user/1000/ICEauthority
I szczerze, nie mam pojęcia co z tym mogę zrobić.
Jakieś pomysły?

Nic nie zrobić.

Plik powinien bardziej nazywać się .xsession-debug, bo różne programy plują tam niekoniecznie błędami... Twój konkretnie przypadek wynika z tego, że cały katalog /run jest na ramdysku i jest od nowa tworzony przy każdym starcie maszyny. A iceauth uprzejmie donosi, że znowu założył w tym katalogu plik ICEauthority.


15
Inne / Odp: Odpowiedni monitor 34 vs 27 4K
« dnia: 2019-07-13, 22:36:57 »
VESA to sterownik do grafiki

VESA (właściwie to VBE) to rozszerzenie BIOS-u VGA (przerwanie 10h) o obsługę trybów wyższych niż 640×480x4. Wszystkie dedykowane sterowniki zasadniczo pomijają VBE, gadając bezpośrednio z chipami graficznymi. Driver Xorg vesa_drv.so jest dla rzadkich przypadków "chipsetów z du*y", gdy nie ma natywnego drivera i Linux musi się posiłkować BIOS-em do zarządzania. VBE jest częściej wykorzystywane do trybów graficznych konsoli (driver kernelowy uvesafb.ko).

Strony: [1] 2 3 ... 167