OpenBSD-all

boot folyamat módosítása

Fórumok

Van egy OpenBSD 7.1 amd64 telepítésem. Jó ötletnek tűnt egy mindent egybe "/" partíció létrehozása, így most van:

- sd3a: 200GB "/"

- sd3b: 24GB "swap"

Jön is boot során a hibaüzenet:

open(hd3a:/etc/boot.conf): Unknown error: code 20

Szerencsére default beállításokkal továbbmegy, viszont így a boot beállításaimnak lőttek. Megtaláltam a hibát, az OpenBSD boot során a root partíció első 1024 cylinderét tudja olvasni, amin én a 200 GB root partíciómmal szépen túllőttem. Szerencsére határon belől van még a kernel, így azt be tudja tölteni, de olvastam olyat is, akinek már az is kívül esett (vagy csak egy része) és ott vége is a boot folyamatnak. Feltételezem, a szerencsén múlik hogy még bootolni tudok, idővel (kernelfrissítés, sysupgrade) kívül esik majd a kernel is és akkor vége.

Újratelepítésen és megfelelő partícionáláson kívül, hogyan tudnám ezt javítani?

Olvasgatva az OpenBSD boot folyamata így néz ki:

  1. Master Boot Record (MBR) and GUID Partition Table (GPT). The fdisk(8) man page contains the details.
  2. Partition Boot Record (PBR). The first 512 bytes of the boot disk's OpenBSD partition contain the first stage boot loader biosboot(8). It is installed by the installboot(8) utility.
  3. Second stage boot loader /boot. The PBR loads the boot(8) program which has the task of locating and loading the kernel.
Using drive 0, partition 3.                      <- MBR
Loading......                                    <- PBR
probing: pc0 com0 com1 mem[638K 1918M a20=on]    <- /boot
disk: hd0+ hd1+
>> OpenBSD/amd64 BOOT 3.33
boot>
booting hd0a:/bsd 4464500+838332 [58+204240+181750]=0x56cfd0
entry point at 0x100120

[ using 386464 bytes of bsd ELF symbol table ]
Copyright (c) 1982, 1986, 1989, 1991, 1993       <- Kernel
        The Regents of the University of California.  All rights reserved.

Tehát nálam a /boot-nál van a hiba. Lehetne-e megjavítani úgy a dolgot, hogy létrehozok egy partíciót, ami belefér az 1024 cylinderbe, arra pakolom a /boot fájlt, a /etc/boot.conf-ot, meg a /bsd kernelt. A biosboot-ot az installboot-tal lehet újra telepíteni, aminek meg lehet adni, hogy hol van a root, ahol a boot-ot keresse:

-r root     Specify the mount point of the root filesystem to operate on, defaulting to /.

Szóval, valami ilyesmire gondolok, hogy létrehozok egy megfelelő partíciót, ami tartalmazza:

/boot (bootloader)
/bsd (kernel)
/etc/boot.conf (bootloader configja)

majd ezt csatolom a /boot könyvtárba.

Akkor elméletben így nézne ki a boot folyamat:

  1. MBR megtalálja a sda3 partíciót, ahol belöki a módosított PBR-t
  2. A PBR a /boot/boot útvonalon indítja a Second stage boot loadert
  3. A Second stage boot loader tudja olvasni a /boot/etc/boot.conf-ot remélhetőleg... és indítja a kernelt: /boot/bsd

 

Kérdések azon kívül, hogy ez működhet-e egyáltalán:

  1. a boot megtalálja-e a /boot/etc/boot.conf-ot? gyanítom igen, mert ő még nem mount-ol, az ő partícióját hiszi root-nak
  2. van-e abból probléma, hogy a /boot/bsd alól indul a kernel, nem a /bsd alól? Megtalálja pl az /etc/fstab-ot, /sbin-t stb?
  3. Egyáltalán hogyan tartható ez karban? gondolok itt arra, hogy ha lesz egy sysupgrade, az felülírja-e a biosboot-ot pl? vagy első boot-kor még a régi kernel indulna a /boot/bsd vonalon, újraindítás előtt azt is frissíteni kellene...

 

Gyanítom, hogy nem működne ez, de hátha van valakinek valami véleménye, javaslata.

OpenBSD amd64 crosscompile to i386

Fórumok

Van egy program:

#include <stdio.h>

int main(int argc, char *argv[])
{
	printf("kecske\n");
	return 0;
}

Fordítom így:

cc -m32 kecske.c -o kecske

Kapom ezt:

ld: error: /tmp/kecske-4627f9.o is incompatible with /usr/bin/../lib/crt0.o
cc: error: linker command failed with exit code 1 (use -v to see invocation)

Próbálom így fordítani:

CFLAGS="-m32" LDFLAGS="-m32" cc -v -m32 kecske.c -o kecske

Eredmény:

OpenBSD clang version 10.0.1 
Target: i386-unknown-openbsd6.8
Thread model: posix
InstalledDir: /usr/bin
 "/usr/bin/cc" -cc1 -triple i386-unknown-openbsd6.8 -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name kecske.c -mrelocation-model pic -pic-level 1 -pic-is-pie -mthread-model posix -mframe-pointer=all -relaxed-aliasing -fno-rounding-math -masm-verbose -mconstructor-aliases -target-cpu i586 -dwarf-column-info -fno-split-dwarf-inlining -debugger-tuning=gdb -v -resource-dir /usr/lib/clang/10.0.1 -fdebug-compilation-dir /root -ferror-limit 19 -fmessage-length 0 -fwrapv -stack-protector 2 -fgnuc-version=4.2.1 -fobjc-runtime=gnustep -fdiagnostics-show-option -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-valloc -fno-builtin-free -fno-builtin-strdup -fno-builtin-strndup -faddrsig -o /tmp/kecske-4627f9.o -x c kecske.c
clang -cc1 version 10.0.1 based upon LLVM 10.0.1 default target amd64-unknown-openbsd6.8
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/clang/10.0.1/include
 /usr/include
End of search list.
 "/usr/bin/ld" -e __start --eh-frame-hdr -Bdynamic -dynamic-linker /usr/libexec/ld.so -o kecske /usr/bin/../lib/crt0.o /usr/bin/../lib/crtbegin.o -L/usr/bin/../lib -L/usr/lib /tmp/kecske-4627f9.o -lcompiler_rt -lc -lcompiler_rt /usr/bin/../lib/crtend.o
ld: error: /tmp/kecske-4627f9.o is incompatible with /usr/bin/../lib/crt0.o
cc: error: linker command failed with exit code 1 (use -v to see invocation)

Kerestem, hogy miként is kéne ezt művelni, de nem találtam semmit. Ha valakinek van valami ötlete, hogy mit is kellene feltelepíteni, bekonfigurálni, parancsba adni, azt megköszönöm.

OpenBSD-vel tényleg nem lehet megoldani a QoS-t?

Fórumok

Azt olvastam, hogy mióta kivették az ALTQ-t az OpenBSD-ből, azóta nem megoldható a QoS vele, szemben a FreeBSD-vel, és az arra épülő pfsense-el vagy opnsense-el. Na most azt is olvastam, hogy ha az ember tényleg érteni szeretné, hogy mit csinál, akkor jobb CLI-ből csesztetni a tűzfalat ahelyett, hogy GUI-n összekattintgatjuk, hogy mi akarunk, mint pl pfsense-nél. Páran az OpenBSD-t ajánlották, de a fenti elbizonytalanított. Nekem kéne a QoS, ha már tényleg erre cseszem el az időmet, és ha tényleg ennyire nem tud semmit az OpenBSD, akkor inkább a FreeBSD vonalon mennék tovább...

OpenBSD pf port forwarding nem működik internet felől érkező forgalom esetén

Fórumok

Sziasztok!

Port forwarding nem működik az alábbi beállításban. A kapcsolódás az internet felől mindig timeout-os.
A provider látja a bejövő forgalmat és forwardolja hozzám.
Ha a következő módon próbálom a kapcsolódást a TestPC-ről a Serverre a tűzfal mögé, akkor minden további nélkül működik:

Provider_gateway(192.168.3.254)
|
|
|
Switch-------------------TestPC(192.168.3.33)
|
|
MyRouter(192.168.3.24)
|
|
Server(192.168.1.111)

De ha internet felől érkezik -> publikus IP-n és nyitott porton keresztül -> a provider gatewayhez, akkor timeout.

Próbáltam a következő szabályt felvenni a port forward mellé, hogy a server felől ne legyen load balanced forgalom,
de ezzel sem sikerült:
pass in quick on em1 proto tcp from $server route-to $wan_if $wan_gw

int_if = "{ em1 em2 }"
ext_if = "{ em0 em3 }"

lan_if = "em1"
lan_net = "192.168.1.0/24"

lan2_if = "em2"
lan2_net = "192.168.2.0/24"

wan_if = "em0"
wan_gw = "192.168.3.254"

wan2_if = "em3"
wan2_gw = "123.123.123.123"

server = "192.168.1.111"
pc = "192.168.1.23"

set block-policy drop
set loginterface egress
set skip on lo0

block all

pass in quick on em0 proto tcp from any to (em0) port 5000 rdr-to $server port 22
pass out quick on em1 proto tcp from any to $server

match out on $wan_if from $lan_net nat-to ($wan_if)
match out on $wan_if from $lan2_net nat-to ($wan_if)
match out on $wan2_if from $lan_net nat-to ($wan2_if)
match out on $wan2_if from $lan2_net nat-to ($wan2_if)

pass in on $lan_if from $lan_net route-to { ($wan_if $wan_gw) weight 1, ($wan2_if $wan2_gw) weight 15 } round-robin
pass in on $lan2_if from $lan2_net route-to { ($wan_if $wan_gw) weight 1, ($wan2_if $wan2_gw) weight 15 } round-robin

pass out on $ext_if

pass out on $wan_if from $wan2_if route-to ($wan2_if $wan2_gw)
pass out on $wan2_if from $wan_if route-to ($wan_if $wan_gw)

pass in proto tcp from $lan_net to $lan_if
pass in proto udp from $lan_net to $lan_if

pass in proto tcp from $lan2_net to $lan2_if
pass in proto udp from $lan2_net to $lan2_if

pass in on $lan_if from $lan_if:network to $lan2_if:network
pass out on $lan2_if from $lan_if:network to $lan2_if:network

pass in on $lan_if from $pc to $lan_if

OpenBSD pf unequal multiwan

Fórumok

Sziasztok!

A guide ( https://www.openbsd.org/faq/pf/pools.html ) alapján kialakítottam a load balancing multiwan kapcsolatot.
Jelenleg azonos terhelés alatt áll mindkét netkapcsolatom, amit azonban súlyoznom (weight) kellene 1:15 arányban.

A pf.conf manjában ( http://man.openbsd.org/pf.conf ) a round-robin szekcióban olvasni utalást erre vonatkozóan:
"round-robin [sticky-address]
The round-robin option loops through the redirection address(es) and considers given weights associated with address(es).
Weights can be specified between 1 and 65535. Addresses with higher weights are selected more often. sticky-address is as described above."

A kérdésem, hogy ténylegesen hogyan lehet beállítani.

Üdv és köszi

OpenBSD GPT-n, nem akar települni

Fórumok

Van egy GPT-s SSD-m, amin már van egy NetBSD. Most akarnék rakni mellé egy OpenBSD-t is. Bootoltam egy Debian telepítőt és létrehoztam neki a (8GB-os) partíciót, utána már az OpenBSD telepítő alatt beállítottam a partíció típusát ($A6, OpenBSD), mondtam neki, hogy flag as bootable, adtam neki labelt is, aztán kiírtam a táblát. Az OpenBSD fel is ismeri, hogy ott egy "OpenBSD area" van és meg is kérdezi, hogy települjön-e oda, de amikor mondom, hogy de, akkor nem teszi, hanem inkább a kérdést teszi fel megint és megint, végtelen ciklusban.

Mi baja van, mit rontottam el?

Linux kompatibilitási réteg: Ki mihez használja?

Fórumok

Üdvözletem!

A napokban olvastam az InfoWorld-ön, hogy az OpenBSD 6.0-ban bitonsági megfontolásból dobják a Linux kompatibilitási réteget:

http://www.infoworld.com/article/3099038/open-source-tools/openbsd-60-t…

Ennek kapcsán merült fel bennem a kérdés, hogy ki milyen programhoz használja a kompatibilitási réteget *BSD-n?

Elsősorban szerverre vagyok kíváncsi, de a desktop is érdekel.

[solved] mount_ffs: Invalid argument

Fórumok

hello, ugyan csak fel napja bujom a netet utana tehat lehet trivialis a megoldas es en siklok el felette, de adott a kovetkezo sema

http://pastebin.com/raw.php?i=AUsqakdF

# dmesg |grep 'wd' |grep 'at'
wd0 at pciide0 channel 0 drive 0:
wd1 at pciide0 channel 0 drive 1:
wd2 at pciide1 channel 1 drive 0:
wd3 at pciide2 channel 1 drive 0:
# disklabel wd2
# /dev/rwd2c:
type: ESDI
disk: ESDI/IDE disk
label: WDC WD5000AACS-0
duid: 2a0803799f767e8e
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 60801
total sectors: 976771055
boundstart: 0
boundend: 976771055
drivedata: 0

16 partitions:
# size offset fstype [fsize bsize cpg]
c: 976771055 0 unused
i: 976771054 1 NTFS
# fdisk wd2
Disk: wd2 geometry: 60801/255/63 [976771055 Sectors]
Offset: 0 Signature: 0xAA55
Starting Ending LBA Info:
#: id C H S - C H S [ start: size ]
-------------------------------------------------------------------------------
0: EE 0 0 2 - 60801 47 29 [ 1: 976771054 ] EFI GPT
1: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
2: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
3: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused

# mount /dev/wd2i /mnt/outer3
mount_ntfs: /dev/wd2i on /mnt/outer3: Invalid argument

nyilvan az a problema, hogy nem mountolja, pedig
- a disklabelt manualisan atjavitottam ntfs-re ugyanis unknownt irt
- a man page ir egy bizonyos problemat az offsettel de azt atjavitva 63-ra sem ok
- masik ketto ntfs-t hasznalo hdd is van a gepben amikkel semmifele problemam sem volt
(mount, adat lement, ujraformaz majd softraid cryptoba rak es adat visszamasol - mindez kvazi percek alatt merheto idotartamban)

mi lehet a baj ezzel a harmadikkal (ami egyben a legnagyobb es legfontosabb volna, hogy atmenthessem rola a cuccokat)?
elore is koszi