Discussion:
tobbfele filesystem bug egyszerre?
Gabor HALASZ
2009-04-21 10:30:40 UTC
Permalink
Initrd-t csinalnek, de a devicenodeok krealasa elesik. Ezzel csinalom:

for i in ccis console core hd ide raid loop md mem null pty ram \
random urandom sd std tty ttyS zero; do
MAKEDEV -d /boot/ramdisk/dev -D /dev -a ${i}
done

Ha minix a filesystem, akkor itt esik el:

MAKEDEV -d /boot/ramdisk/dev -D /dev -a zero
MAKEDEV: error making /boot/ramdisk/dev/zero: No such file or directory

Kis straceles alapjan ezt szeretne a MAKEDEV:

mknod /boot/ramdisk/dev/zero- c 1 5
mknod: /boot/ramdisk/dev/zero-: File exists

De hogy meg erdekesebb legyen:

ls -la /boot/ramdisk/dev/zero-
crw-rw-rw- 1 root root 1, 5 Apr 21 14:01
/boot/ramdisk/dev/zero-

rm -rf /boot/ramdisk/dev/zero-
rm: cannot remove '/boot/ramdisk/dev/zero-': No such file or directory
lenny:~#

Ha ext2-t rakok ra:

MAKEDEV: error making /boot/ramdisk/dev/ttyS0107: No space left on device

De kozben:
/dev/loop0 31729 1128 28963 4% /boot/ramdisk

Ha reiserfs 3.6-tal termeszetesen mukodik, de azt megsem tennek
initrd-re. A kernel 2.6.26-1 lenny-bol. Valami otlet?
--
Gabor HALASZ <***@freemail.hu>
Gábor Lénárt
2009-04-21 10:29:21 UTC
Permalink
Post by Gabor HALASZ
MAKEDEV: error making /boot/ramdisk/dev/ttyS0107: No space left on device
/dev/loop0 31729 1128 28963 4% /boot/ramdisk
df -i ?
--
- Gábor
Gabor HALASZ
2009-04-21 10:58:39 UTC
Permalink
Post by Gábor Lénárt
Post by Gabor HALASZ
MAKEDEV: error making /boot/ramdisk/dev/ttyS0107: No space left on device
/dev/loop0 31729 1128 28963 4% /boot/ramdisk
df -i ?
Nem tudom. Az ext2-n azt mutatja, hogy nincs tobb inode (a makedev sincs
joban az uj kernellel, irdatlan mennyisegu devicet hoz letre, ha
limitalom, akkor nem fogynak el az inodedok), reiserfs-n meg nincs
inode, de amikor a minix esik el, akkor van boven szabad inode:

lenny:~# df -i /boot/ramdisk
Filesystem Inodes Used Available Use% Mounted on
/dev/loop1 10944 2635 8309 24% /boot/ramdisk
lenny:~# df /boot/ramdisk/
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/loop1 32418 864 31554 3% /boot/ramdisk
--
Gabor HALASZ <***@freemail.hu>
Gabor Gombas
2009-04-21 10:54:31 UTC
Permalink
Post by Gabor HALASZ
MAKEDEV -d /boot/ramdisk/dev -D /dev -a zero
MAKEDEV: error making /boot/ramdisk/dev/zero: No such file or directory
mknod /boot/ramdisk/dev/zero- c 1 5
mknod: /boot/ramdisk/dev/zero-: File exists
Ev elejen volt valami bug javitas a minix_add_link() kornyeken, probald
ki esetleg 2.6.29-cel.
Post by Gabor HALASZ
ls -la /boot/ramdisk/dev/zero-
crw-rw-rw- 1 root root 1, 5 Apr 21 14:01
/boot/ramdisk/dev/zero-
rm -rf /boot/ramdisk/dev/zero-
rm: cannot remove '/boot/ramdisk/dev/zero-': No such file or directory
lenny:~#
MAKEDEV: error making /boot/ramdisk/dev/ttyS0107: No space left on device
/dev/loop0 31729 1128 28963 4% /boot/ramdisk
A device node nem igazan foglal helyet, inode-ot viszont annal inkabb.
Post by Gabor HALASZ
Ha reiserfs 3.6-tal termeszetesen mukodik, de azt megsem tennek
initrd-re. A kernel 2.6.26-1 lenny-bol. Valami otlet?
Miert veszodsz initrd-vel, miert nem hasznalsz inkabb initramfs-t? Olyan
file rendszeren rakod ossze, ami neked tetszik, aztan egy jol iranyzott
cpio hivas es kesz.

Gabor
--
---------------------------------------------------------
MTA SZTAKI Computer and Automation Research Institute
Hungarian Academy of Sciences
---------------------------------------------------------
Gabor HALASZ
2009-04-21 11:06:12 UTC
Permalink
Post by Gabor Gombas
Ev elejen volt valami bug javitas a minix_add_link() kornyeken, probald
ki esetleg 2.6.29-cel.
Amig nincs initrd-m, nem tudok masik kernelt rakni ra ;)
Post by Gabor Gombas
Post by Gabor HALASZ
/dev/loop0 31729 1128 28963 4% /boot/ramdisk
A device node nem igazan foglal helyet, inode-ot viszont annal inkabb.
Valoban, de a minix-en nem fogytak el, de megnezem ujabb kernellel.
Post by Gabor Gombas
Miert veszodsz initrd-vel, miert nem hasznalsz inkabb initramfs-t? Olyan
file rendszeren rakod ossze, ami neked tetszik, aztan egy jol iranyzott
cpio hivas es kesz.
Pont ezert.
--
Gabor HALASZ <***@freemail.hu>
Gabor Gombas
2009-04-21 14:45:52 UTC
Permalink
Post by Gabor HALASZ
Post by Gabor Gombas
A device node nem igazan foglal helyet, inode-ot viszont annal inkabb.
Valoban, de a minix-en nem fogytak el, de megnezem ujabb kernellel.
Egyreszt honnan tudod, hogy nem fogytak volna el, ha nem is tudja
megcsinalni a node-okat? Masreszt mas a file system formatuma, es masok
az alapertelmezett parameterek:

# dd if=/dev/zero of=/tmp/test1 bs=1M count=32
# mkfs.minix /tmp/test1
10944 inodes
[...]
# mkfs.ext2 /tmp/test1
[...]
8192 inodes, 32768 blocks
[...]
# mkfs.ext2 -i 1024 /tmp/test1
[...]
32768 inodes, 32768 blocks

Te milyen parametereket adtal meg ill. mi van a /etc/mke2fs.conf-ban?

Gabor
--
---------------------------------------------------------
MTA SZTAKI Computer and Automation Research Institute
Hungarian Academy of Sciences
---------------------------------------------------------
Gabor HALASZ
2009-04-21 15:03:43 UTC
Permalink
Post by Gabor Gombas
Post by Gabor HALASZ
Post by Gabor Gombas
A device node nem igazan foglal helyet, inode-ot viszont annal inkabb.
Valoban, de a minix-en nem fogytak el, de megnezem ujabb kernellel.
Egyreszt honnan tudod, hogy nem fogytak volna el, ha nem is tudja
megcsinalni a node-okat?
A thread masik agaban irtam:

lenny:~# df -i /boot/ramdisk
Filesystem Inodes Used Available Use% Mounted on
/dev/loop1 10944 2635 8309 24% /boot/ramdisk
lenny:~# df /boot/ramdisk/
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/loop1 32418 864 31554 3% /boot/ramdisk
Post by Gabor Gombas
Te milyen parametereket adtal meg ill. mi van a /etc/mke2fs.conf-ban?
Default, de az ext2 rendben van, ott tenyleg azt mutatta, hogy nincs
tobb inode, ott en felejtettem el megnezni.
--
Gabor HALASZ <***@freemail.hu>
Gabor HALASZ
2009-04-22 10:08:37 UTC
Permalink
Post by Gabor Gombas
Ev elejen volt valami bug javitas a minix_add_link() kornyeken, probald
ki esetleg 2.6.29-cel.
Kiprobaltam 2.6.29.1-gyel, mas a tunet, de szinten elesik.

open("/etc/group", O_RDONLY|O_CLOEXEC) = 3
_llseek(3, 0, [0], SEEK_CUR) = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=643, ...})
= 0
mmap2(NULL, 643, PROT_READ, MAP_SHARED, 3, 0)
= 0xb7ff1000
_llseek(3, 643, [643], SEEK_SET) = 0
munmap(0xb7ff1000, 643) = 0
close(3) = 0
mknod("/boot/ramdisk/dev/ttyEQ0-", S_IFCHR|0600, makedev(256, 0))
= -1 EINVAL (Invalid
argument)
write(2, "MAKEDEV: error making /boot/ramdisk/dev/ttyEQ0: Invalid
argument\n"..., 65) = 65
exit_group(8)
= ?

Annyi javulas mar van, hogy devicenode-ot nem lehet, sime filet mar lehet:

lenny:~# mknod /boot/ramdisk/dev/ttyEQ0 c 256 0
mknod: /boot/ramdisk/dev/ttyEQ0: Invalid argument
lenny:~# ls -la /boot/ramdisk/dev/ttyEQ0-
ls: /boot/ramdisk/dev/ttyEQ0-: No such file or directory
lenny:~# touch /boot/ramdisk/dev/ttyEQ0-
lenny:~# ls -1 /boot/ramdisk/dev/ttyEQ0-
/boot/ramdisk/dev/ttyEQ0-
--
Gabor HALASZ <***@freemail.hu>
Gábor Lénárt
2009-04-22 10:30:58 UTC
Permalink
On Wed, Apr 22, 2009 at 12:08:37PM +0200, Gabor HALASZ wrote:
[...]
Post by Gabor HALASZ
mknod("/boot/ramdisk/dev/ttyEQ0-", S_IFCHR|0600, makedev(256, 0))
= -1 EINVAL (Invalid
argument)
Nem tudom mi ujsag ujabban, hogy hany bites lehet a minor es major device
number, de gyanus, hogy pont 256-nal esik el, nem lehet, hogy adott fs-en ez
nincs tamogatva, vagy hasonlo?
--
- Gábor
Gabor HALASZ
2009-04-22 11:05:32 UTC
Permalink
Post by Gábor Lénárt
[...]
Post by Gabor HALASZ
mknod("/boot/ramdisk/dev/ttyEQ0-", S_IFCHR|0600, makedev(256, 0))
= -1 EINVAL (Invalid
argument)
Nem tudom mi ujsag ujabban, hogy hany bites lehet a minor es major device
number, de gyanus, hogy pont 256-nal esik el, nem lehet, hogy adott fs-en ez
nincs tamogatva, vagy hasonlo?
Nem tudom, azert kerdezem. Ha kiszerelem a makedev (ez a rhes5
makedev-je) konfigjabol a >255 folotti inode-okat, akkor valoban lefut.
Viszont az ext3-on letre tudja hozni:

ls -la /dev/ttyEQ0
crw------- 1 root root 256, 0 Apr 21 19:49 /dev/ttyEQ0

Ha at akarom masolni:

getuid32() = 0
stat64("/dev/ttyEQ0", {st_mode=S_IFCHR|0600, st_rdev=makedev(256, 0),
...}) = 0
stat64("/boot/ramdisk/dev/", {st_mode=S_IFDIR|0755, st_size=121472,
...}) = 0
brk(0) = 0x9fa8000
brk(0x9fc9000) = 0x9fc9000
stat64("/dev/ttyEQ0", {st_mode=S_IFCHR|0600, st_rdev=makedev(256, 0),
...}) = 0
lstat64("/boot/ramdisk/dev/ttyEQ0", 0xbfd90b6c) = -1 ENOENT (No such
file or directory)
open("/dev/ttyEQ0", O_RDONLY|O_LARGEFILE) = -1 ENXIO (No such device or
address)
write(2, "cp: can't open '/dev/ttyEQ0': No "..., 56cp: can't open
'/dev/ttyEQ0': No such device or address
) = 56
exit_group(1) = ?
--
Gabor HALASZ <***@freemail.hu>
Gabor Gombas
2009-04-23 12:39:11 UTC
Permalink
Post by Gabor HALASZ
Nem tudom, azert kerdezem. Ha kiszerelem a makedev (ez a rhes5
makedev-je) konfigjabol a >255 folotti inode-okat, akkor valoban lefut.
A minix csak a regi, 16 bites device node-okat tamogatja (8 bit major, 8
bit minor). Az ext3 termeszetesen tamogatja az ujabb, 32 bites
formatumot is (12 bit major, 20 bit minor).

Gabor
--
---------------------------------------------------------
MTA SZTAKI Computer and Automation Research Institute
Hungarian Academy of Sciences
---------------------------------------------------------
Loading...