Linux: Cum fac...?

Dupa multa chinuiala, raspunsul final a fost un .xinitrc care contine doar aplicatiile de fundal, fara window manager, plus o serie de alias-uri pentru programele folosite frecvent:
alias openttd='cp ~/.xinitrc /tmp/.xinitrc ; echo /usr/bin/openttd >> /tmp/.xinitrc ; startx /tmp/.xinitrc ; rm /tmp/.xinitrc'
...si unul generic pentru restul, inclusiv window manager-ul.
alias xinit='cp ~/.xinitrc /tmp/.xinitrc ; if [ -z $1 ] ; then echo /usr/bin/jwm >> /tmp/.xinitrc ; else echo $* >> /tmp/.xinitrc ; fi ; startx /tmp/.xinitrc ; rm /tmp/.xinitrc'
 
Last edited:
  • Like
Reactions: Neo
Am nevoie sa lucrez la niste .diff-uri. Fisierul original s-a modificat si diff-ul nu se mai potriveste.
Ce aplicatie desktop imi poate arata fisierul original, diff-ul, erorile si rezultatul final, toate simultan in aceeasi fereastra?
 
Impredictibilitatea softului din ziua de azi ma dispera maxim! Pe vremea MSDOS... bine, bine, va zic alta data...

Deci:
Code:
root@GRAPHRT:/# zcat /proc/config.gz | grep -i devtmp
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
Pana aici bine, da?
Device-ul booteaza un init f. basic care ruleza niste scripturi numite generic "preinit".
Uite unul din ele modificat de mine ca sa fie totul f. f. evident in dmesg-ul care urmeaza:
Code:
root@GRAPHRT:/# cat /lib/preinit/31_btrfs_scan_preinit
#!/bin/sh

preinit_btrfs_scan() {
        if grep -q btrfs /proc/filesystems; then
                echo "preinit: Scanning for btrfs (default)..." > /dev/kmsg
                btrfs device scan > /dev/kmsg
                echo "preinit: Scanning for btrfs (all)..." > /dev/kmsg
                btrfs device scan -d > /dev/kmsg
                echo "preinit: Scanning for btrfs (sda)..." > /dev/kmsg
                btrfs device scan /dev/sda > /dev/kmsg
                echo "preinit: Scanning for btrfs (sdb)..." > /dev/kmsg
                btrfs device scan /dev/sdb > /dev/kmsg
                echo "preinit: Scanning for btrfs (sdc)..." > /dev/kmsg
                btrfs device scan /dev/sdc > /dev/kmsg
        fi
}

boot_hook_add preinit_main preinit_btrfs_scan
OK, da?
Scriptul asta ruleaza dupa o pauza de 10s in procesul de preinit, pauza in care device-ul intreaba daca vreau modul failsafe.

Si acum bootarea propriu-zisa (partile interesante, in ordine):
Code:
[    3.288504] devtmpfs: mounted
[    3.371642] Run /sbin/init as init process
...
[    3.829850] sd 1:0:0:0: [sda] 976773168 512-byte logical blocks: (500 GB/466 GiB)
[    4.729389] sd 2:0:0:0: [sdb] 15728640 512-byte logical blocks: (8.05 GB/7.50 GiB)
[    4.763688] sd 2:0:0:0: [sdb] Attached SCSI removable disk
[    4.829468] sd 3:0:0:0: [sdc] 15728640 512-byte logical blocks: (8.05 GB/7.50 GiB)
[    4.863968] sd 3:0:0:0: [sdc] Attached SCSI removable disk
[    6.464461] sd 1:0:0:0: [sda] Attached SCSI disk
[    6.481246] init: - preinit -
...
[   17.715433] preinit: Scanning for btrfs (default)...
[   18.127570] Scanning for Btrfs filesystems
[   18.489293] preinit: Scanning for btrfs (all)...
[   18.500652] Scanning for Btrfs filesystems
[   18.812415] preinit: Scanning for btrfs (sda)...
ERROR: not a block device: /dev/sda
[   18.821518] preinit: Scanning for btrfs (sdb)...
ERROR: not a block device: /dev/sdb
[   18.830549] preinit: Scanning for btrfs (sdc)...
ERROR: not a block device: /dev/sdc
...
[   19.717100] UBIFS (ubi0:1): Mounting in unauthenticated mode
[   19.892728] UBIFS (ubi0:1): UBIFS: mounted UBI device 0, volume 1, name "rootfs_data"
[   19.940270] block: attempting to load /tmp/ubifs_cfg/upper/etc/config/fstab
[   19.954023] BTRFS: device label GRAPHRT devid 2 transid 23553 /dev/sdb scanned by block (967)
[   19.963419] BTRFS: device label GRAPHRT devid 1 transid 23553 /dev/sdc scanned by block (967)
...
[   20.057182] mount_root: switched to extroot
...
[   26.080739] BTRFS: device label RTShare devid 1 transid 127 /dev/sda scanned by block (1835)
:capu::capu::capu:
 
Server samba 4.14.12 pe OpenWrt, Windows 7 client.
- fac share samba cu acces guest - merge
- schimb accesul in user/pass - nu merge - 0xc000006d STATUS_LOGON_FAILURE parola incorecta
- setez "map to guest = Bad Password" - merge
- setez "map to guest = Never" si cea mai simpla parola posibila: 1234 - nu merge - parola incorecta
- setez "null passwords = yes" si parola goala - merge
- acelasi server, acelasi cont, parola 1234, client WinXP 64bit - merge!
- acelasi server, acelasi cont, aceeasi parola, client Gentoo, "mount -t cifs ...blabla...", kernel 5.15 - nu merge - parola incorecta.
WTF?!?! :capu:
 
Mixul de sisteme de operare care nu sunt concepute pentru a functiona impreuna e o problema cautata cu lumanarea. Numai faptul ca pomenesti Win 7 si Win XP in 2022 ridica semne de intrebare, pe vremuri credeam ca trollezi, acum sunt convins ca e mai grav. Just sayin'
 
Pe scurt, protocolul si emularea SAMBA difera intre generatii si de obicei nu se inteleg intre ele.
Sa le faci sa mearga impruna cum trebuie e o raritate, nu o normalitate.
 
O mica corectie: Gentoo merge. Era o problema de client, nu server. Deci ramane doar Win7 care nu vrea nici in ruptul capului. In log-urile samba apare asa:
[2022/05/12 18:30:16.283474, 2] check_ntlm_password: Authentication for user [SambaUser] -> [SambaUser] FAILED with error NT_STATUS_WRONG_PASSWORD, authoritative=1
Evident, am tastat parola de multe ori si cu mare atentie la caps lock & stuff.

Asta cu mix-ul de sisteme de operare... Pana sa mut share-urile pe router, le-am avut pe acel WinXP 64bit si ma puteam conecta cu Gentoo, LibreELEC, Raspbian, Total Commander din Android, Win7, WinXP 64 & 32bit, Win98, Win95, Win3.11 si DOS cu LANMAN si la un moment dat si cu NT4. Si n-am avut niciodata nicio problema.

Sa nu fiu inteles gresit: singurul motiv pentru care renunt la serverul cu Windows este ca mananca 200W semi-degeaba. Daca asa stau treburile cu linux-ul, chiar si la chestii non-desktop, viitorul NU suna bine.
 
Last edited:
Compatibilitatea Linux-Windows e limitata, nu certa. Daca ceva merge e motiv de bucurie, daca nu merge e de dat din umeri si mers mai departe. In mediile Enterprise lumea cam fuge de combinatii pentru ca daca ai probleme de obicei esti in pom, si pomul e in aer.

Serverul meu de Windows consuma cam 50-60W - Ryzen 5600X, 128GB de RAM, o gramada de discuri (mai mica decat a ta) si retea 10Gbit. In el ruleaza si servere de SQL si masini virtuale. E mai mult decat mi-as dori, dar nu cu mult peste ceva mai economic si mult mai slab. Dar asta depinde foarte mult de ce ai disponibil, ca daca nu vrei sa cumperi o gramada de chestii doar ca sa ai un server low-power nu are sens.
 
Pe un alt Win 7 merge. :hmm:
Schimbat Samba cu ksmbd - merge pe Win7, nu mai merge pe XP. :damn:
Prevad o reinstalare de Win7.
----
E vorba deci despre Samba 4.
Dupa ce am facut RAID-ul, am conectat DAS-ul direct la server (eSATA), am bootat un Gentoo Linux si am copiat datele de pe NTFS-uri pe btrfs. Acum m-am trezit ca am niste fisiere la care Samba zice ca "illegal character". Nu le vad in directorul deschis prin retea. Exemplu: Téo & Téa, nume de album al lui Jean Michel Jarre.
Ca si test, am incercat sa creez prin retea fisere cu diacriticele romanesti (alea noi) si a mers totul bine pe un sistem si jalnic pe altul (font problems), dar au aparut in director si le-am putut deschide.

Pe asta cum o rezolv?
 
Last edited:
Code:
drwxrwxrwx    1 Marius95 sambas          46 Oct  6  2019 01 KA¶ln - Frankfurt/
drwxr-x---    1 Marius95 sambas         484 May  9 00:17 01 Köln - Frankfurt/
Primul e copiat prin Samba (Windows -> Linux). Al doilea e copiat cu mc direct NTFS-btrfs. Mi se pare mie sau primul e UTF-8? Intrebarea e ce este al doilea? windows-1252?
 
OK, deci merge cu smb.conf - "unix charset = iso8859-1" (windows-1252 n-am), dar nu cred ca e cea mai buna varianta.
Cum fac sa convertesc toate numele de fisiere in UTF-8 si cum fac sa convertesc la loc cand o sa ma intorc la Windows / NTFS? Sau nu mai e nevoie sa le convertesc la loc?
 
Pai nu pot UTF-8, ca de acolo am plecat - "illegal character". Fisierele au nume facute de Windows XP, in ce charset le-a salvat NTFS-ul. Eu doar le-am copiat pe btrfs asa cum erau, cu mc. Posibil sa fie un mix de charset-uri, inclusiv cu niste rusa.
NFS-ul este absolut superb, cea mai minunata inventie de la painea feliata, doar ca nu exista decat in anumite Windows-uri iar eu n-am nici unul din alea.
 
Nu știu în ce Windows-uri există ok NFSul, dar în Windows 10 este o mizerie :smile:

But we're talking about Windows. On Windows, the interpretation of a filename is not left to the application. Rather, the filename byte stream sent from the NFS server to the Windows client machine has to be converted to a UTF-16 string to be digestible by the OS. Therefore the interpretation of the filename byte stream has to be performed by the NFS client service, on a per mount point basis. The application has no say in it.

And here's the problem. If the remote codeset used to create filenames is UTF-8, as is the default for many years in the POSIX world, there's no chance to get a correct filename from the Windows application point of view, because the interpretation of the filename is already done by the Windows NFS client which doesn't allow the conversion from UTF-8 to UTF-16. In fact, the NFS client only supports a restricted number of codeset conversions to UTF-16, all of them rather old-fashioned.

Ca să citez un clasic încă în viață
băi, utf-8 ar trebui să accepte orice

Ceva este mucit pe-acolo la Samba sau la client. Dacă dai o listare pe server, caracterele apar corect?


Edit: dacă sunt într-adevăr encoded UTF-8, pe server ar trebui să arate bine la listare. Deci probabil nu sunt. Dacă dai o listare de pe server pe directorul original, cum arată caracterele?
 
Windows mi-a făcut o dumă acum câteva luni cum nu mi s-a mai întâmplat vreodată. Am dat rename la un folder cu niște caractere germane și ceva s-a bușit în exFAT (sau e NTFS?), că vedeam folderul dar nu puteam să intru în el sau să-l șterg sau să-l redenumesc. Nici uneltele din linie de comandă n-au reușit nimic, checkdisk-uri, alea alea. Cum l-am fraierit? Folosind din command prompt comenzile nu cu numele de fișiere lungi puse între ghilimele, ci în formatul DOS 8.3, remember those? Deci nu del "Nume folder cu caractere bușite" ci del NUMEFO~1 .

N-am soluții, doar empatizez la wtf :biggrin:
 
Folosind din command prompt comenzile nu cu numele de fișiere lungi puse între ghilimele, ci în formatul DOS 8.3, remember those? Deci nu del "Nume folder cu caractere bușite" ci del NUMEFO~1
Confirm că s-o pățît ceva similar, unde trebuia să editez un .ini la MegaRAID thingie și nu accepta pathway cu ghilimele deci i-am pus cu DOS 8.3. Am simțit că îmi aduc aminte mai bine cum m-am născut decât regulile alea de denumire.
 
btrfs. Fac snapshot read-only. Pot trimite snapshot-ul btrfs send cu pipe catre un btrfs receive in alta parte.
Oare pot trimite snapshot-ul cu pipe catre xz si apoi spre un fisier aflat pe ceva non-btrfs? Si daca vreau restore, pot un-xz fisierul si pipe catre btrfs receive?
 
btrfs. Fac snapshot read-only. Pot trimite snapshot-ul btrfs send cu pipe catre un btrfs receive in alta parte.
Oare pot trimite snapshot-ul cu pipe catre xz si apoi spre un fisier aflat pe ceva non-btrfs? Si daca vreau restore, pot un-xz fisierul si pipe catre btrfs receive?
DA, se poate! :thumbs: ... cu mentiunea ca pipe-ul ">" va tine fisierul destinatie in memorie pana se termina xz-ul, si abia apoi scrie datele.
Code:
btrfs -v send openwrt.a.2022-06-23 | xz -cz9e -T3 > /mnt//Backup/openwrt.a.2022-06-23.btrfs.xz
 
Back
Top