Re: atari sysinst.fs overflow again
[email protected] (Christos Zoulas) Wed, 22 Nov 2017 13:48:16 -0500
| Newsgroups | gmane.os.netbsd.ports.atari |
|---|---|
| Organization | Astron Software |
| Message-ID | <[email protected]> |
On Nov 23, 3:00am, [email protected] (Izumi Tsutsui) wrote: -- Subject: Re: atari sysinst.fs overflow again | > It is smaller on x86: | > | > [12:45pm] 139>ls -l /sbin/sysctl /sbin/mount_kernfs | > -r-xr-xr-x 1 root wheel 14520 Feb 12 2017 /sbin/mount_kernfs* | > -r-xr-xr-x 1 root wheel 56288 Feb 12 2017 /sbin/sysctl* | > | > Not only that, but if we are not using KERNFS during the installation | > we should remove it from the kernels :-) | | Adding /sbin/mount_kernfs (and /kern dir) and removing /bin/sysctl | make instbin fit sysinst.fs 1440KB. | | > >> sed -n -e 's/\(^[ws]d[0-9]\) at/\1/p' /kern/msgbuf | | "sed -n -e 's/\(^[ws]d[0-9]\) at.*/\1/p' /kern/msgbuf" | seems to work (on i386), but it still has a problem: | MSGBUFSIZE is 32KB on atari, then msgbuf could include messages from | the previous kernel so the same disk could appear multiple times. | (uniq by sed?) You need sort -u for that and although uniq in sed is 'N;/^\(.*\)\n\1$/!P;D', it would not work, but this does: #!/bin/sh getdisks() { local disks found disk newdisk sed -n -e 's/\(^[ws]d[0-9]\) at.*/\1/p' "$1" | while read newdisk; do found=false; for disk in $disks; do if [ "$disk" = $newdisk ]; then found=true break fi done $found && continue disks="$disks $newdisk" echo $newdisk done } getdisks /kern/msgbuf christos