You are not logged in.

#1 2012-08-12 19:19:10

wolfdogg
Member
From: Portland, OR, USA
Registered: 2011-05-21
Posts: 545

[solved] kernel panic - failed to execute /sbin/init no such file

in light of the latest system upgrade regarding glibc, i think i hosed my system.  It started during a system upgrade using the pacman -Sd switch that led to further glibc and curl dependency isues, see my post here regarding that  https://bbs.archlinux.org/viewtopic.php?id=146897 . After that problem was solved i continued to upgrade and found that i was still getting /lib issues.  I made a mistake by moving the entire /lib directory to a backup location. Upon further inspection it appeared the entire lib directory didnt move for some reason.  I decided i would try to move them back, but now the system couldnt find the commands anymore, such as 'mv' 'cp' they were now relocated and broken apparently. 

I rebooted the system first, primarily because i now have no server access (ssh, samba, http) fsck decided that /dev/sda3 needed cleaning, because possible it found those files were missing????  not sure why but the hard drive doenst have any mechanical problems, so it must be related to something system-wise. Then i went on to boot into a rescue disk. From the rescue shell i copied all the files from the lib backup location back to /usr/lib where they came from.  One would think that now the /usr/lib should be complete again and back to normal.  I should be able to boot back into the system and see the same messages that appeared when i tried to upgrade with pacman (the /lib dependency issues).  but at boot fsck runs again, accompanied with an all telling error message

performing fsck on /dev/sda3
/dev/sda3 clean on real root
running cleanup hook [udev]
switch_root failed to execute /sbin/init: no such file or directory
Kernel panic - not syncing: attempted to kill init! exitcode=0x00000100
Pid: 1: 1, comm: switch_root Not tainted 3.4.4-3 ARCH #1
Call Trace
panic
do_exit
do_group_exit
sys_exit_group
system_call_fastpath

I didnt make any adjustments on fstab.  Before i make matters worse i wanted to ask those who might be more familiar with the inner layers of arch.  Where should i go from here? fstab or mkinitcpio or where?

EDIT: im starting to wonder, is there both a /lib, and a /usr/lib? its a bit confusing because of the new location for the libs.  Im not sure what directories where used for what with the pacman glibc upgrade issue.  if some of those files were still in /lib i wonder if i might have copied the files out of /lib instead of /usr/lib to the backup location, and then when i copied them back, i put them into /usr/lib thinking thats where they came from.  could this be a possibility?  if so, then i might be able to track down those files by name and put them back in /lib which might get be back to booting.

Last edited by wolfdogg (2012-08-28 14:46:57)


Node.js, PHP Software Architect and Engineer (Full-Stack/DevOps)
GitHub  | LinkedIn

Offline

#2 2012-08-13 10:46:42

axs
Member
Registered: 2009-01-23
Posts: 71
Website

Re: [solved] kernel panic - failed to execute /sbin/init no such file

Looks like you've lost /lib/ld-linux*.so. To verify, boot from a rescue media. chroot to your system and run ldd /sbin/init.
The system won't boot untill you get rid of "not found" entries in ldd output.
Check your backups, and make sure you have the libs where the executables expect them.

/lib has been a symlink to /usr/lib for some time already, though before that those were two separate directories.

Offline

#3 2012-08-13 23:28:51

fukawi2
Ex-Administratorino
From: .vic.au
Registered: 2007-09-28
Posts: 6,217
Website

Re: [solved] kernel panic - failed to execute /sbin/init no such file

I had this same issue after updating my home desktop on Saturday night.... After 4 months since my last -Syu :S

To resolve it, I had to boot a live cd and chroot in, then:
1) Reinstall glibc (delete /var/cache/pacman/pkg/glibc* first to force it to download a new copy)
2) Add the 'usr' hook to mkinitcpio.conf and rerun `mkinitcpio -p linux`

If you search the forums, there are a few of us that have had similar issues (kernel panic on boot after update), with various solutions and suggestions floating around.

Offline

#4 2012-08-14 01:11:38

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: [solved] kernel panic - failed to execute /sbin/init no such file

axs wrote:

/lib has been a symlink to /usr/lib for some time already, though before that those were two separate directories.

I'm not sure what you mean by "some time" but this change is part of the glibc-2.16.0-n upgrade where n was either 1 or 2 though I forget which.

@wolfdogg,
Read the news and follow the link to the instructions on the developer wiki. Also search the forums. Although you're the first person I've come across who has made the mistake of moving /usr/lib (if that's what you did) rather than /lib (which is I suspect what you did), there is a tonne of information about this and many solutions.

To answer your question: yes, until very recently, /lib was separate from /usr/lib. (And on a 64 bit system, /lib64 was also distinct.)

If you can figure out which files you moved, I would start by moving them back from /usr/lib to /lib *unless* you have somehow already updated glibc.

If fsck found /dev/sda3 needed cleaning, did you resolve those problems? That should be your first move. fsck won't care about the missing files. That's not the kind of thing it checks. Looking at the output you give below, I guess you did do this as fsck is reporting the filesystem clean at this point.

Does /sbin/init exist?

Looking at your other post, I take it you've downgraded curl? What else have you done at this point?

Last edited by cfr (2012-08-14 01:12:52)


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#5 2012-08-14 02:28:49

wolfdogg
Member
From: Portland, OR, USA
Registered: 2011-05-21
Posts: 545

Re: [solved] kernel panic - failed to execute /sbin/init no such file

i haven't done anything yet, but i am trying to chroot but im getting the error

cannot change root directory to ./bin/bash not a directory

  im looking into the other options right now.

edit, i did downgrade curl, sorry i should have mentioned that here.  that info is found in my link in the op.  looking deeper i believe it looks like when i moved /lib (not /usr/lib) the symlink went by the wayside.  this makes sense why when i moved the files back, i probably couldnt find lib, and mistakingly thought i grabbed them from /usr/lib, which is where i put them back.  however, i do still have a copy of them, and i do know what files i moved.  But im thinking what if i just create the symlink back, and go from there?  possibly the system is looking to that symlink to find the files in /usr/lib?

p.s., trust me, i have been schooled enough to know to read the latest news i have been working around this problem for months now.  :-)

Last edited by wolfdogg (2012-08-14 02:43:06)


Node.js, PHP Software Architect and Engineer (Full-Stack/DevOps)
GitHub  | LinkedIn

Offline

#6 2012-08-14 02:54:28

wolfdogg
Member
From: Portland, OR, USA
Registered: 2011-05-21
Posts: 545

Re: [solved] kernel panic - failed to execute /sbin/init no such file

thank you, i got past that hurdle.  recreating the symlink is all that needed.

ln -s usr/lib usr

  once i put the symlink back, it booted back to what i saw before after i downgraded curl.   i dont know what made me move a symlink, i need to check more often ls-l

Im back to the error that i was seeing that caused me to take desperate measures to upgrade to GLIBC_2.16 in the first place. 
the error is

arch login: /usr/sbin/smbd: /usr/lib/libc.so.6: version GLIBC_2.16 not found (required by /usr/lib/libkrb5.so.3)

shall i make a new post, or continue here?  im thinking fukawi's suggestion to chroot into the system and delete glibc from the cache and grab a new downloaded version might work here?

Last edited by wolfdogg (2012-08-14 15:11:24)


Node.js, PHP Software Architect and Engineer (Full-Stack/DevOps)
GitHub  | LinkedIn

Offline

#7 2012-08-15 01:05:40

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: [solved] kernel panic - failed to execute /sbin/init no such file

The trouble is that if you have an older version of glibc but have already symlinks /lib to /usr/lib, I'm not sure whether you will be able to update glibc successfully. What version of glibc is installed?

Did you run the commands from the wiki and deal with any non-glibc-owned files in /lib, using the follow-up instructions as appropriate?

You may need to install the special version of glibc Allan put on his blog for upgrading old installs (or upgrading from the old install media).


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#8 2012-08-15 06:16:20

wolfdogg
Member
From: Portland, OR, USA
Registered: 2011-05-21
Posts: 545

Re: [solved] kernel panic - failed to execute /sbin/init no such file

teh version was glibc2.15-12, i went ahead and installed allans, got  warning

sbin/ldconfig: /lib/libcurl.so.4 is not a sym link

  after this i was able to install php, php-pear, and phpmyadmin upgraded successfully, but when i went to pacman -Syu in full it mentioned a 576 mb install size, and that was files all from cache, where i get a series of glibc messages which is probably related to the non-glibc owned files you mentioned.  the error starts off like this

error: failed to commit transaction (conflicting files)
glibc /lib exists in filesystem
glibc: /usr/lib/ld-2.16.so exists in filesysystem

and so forth for more than the following, ld-linux-x86_64.so.2, libBrokenLocale-2.16.so, all the way to libutil.so.1 (45 in total) then the error message ends like this

gcc: /usr/lib/cpp exists in filesystem
no packages were upgraded.

  if i try

pacman -Syu --ignore glibc,curl

i get only the error

gcc: /usr/lib/cpp exists in filesystem

which wiki were you referring to, the one linked on the news https://wiki.archlinux.org/index.php/De … iki:usrlib, or is there another one?

Edit: so i moved out the /var/cache/pacman/pkg contents to a backed up location and tried again using --ignore glibc,curl command and still i get the /usr/lib/cpp exists error.  when i run ls -l /usr/lib/cpp i see that its a symlink to /usr/bin/cpp   is there something i can do with this, such as move, or break the symlink temporarily?

Last edited by wolfdogg (2012-08-15 06:29:57)


Node.js, PHP Software Architect and Engineer (Full-Stack/DevOps)
GitHub  | LinkedIn

Offline

#9 2012-08-15 23:17:23

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: [solved] kernel panic - failed to execute /sbin/init no such file

wolfdogg wrote:

teh version was glibc2.15-12, i went ahead and installed allans, got  warning

sbin/ldconfig: /lib/libcurl.so.4 is not a sym link

  after this i was able to install php, php-pear, and phpmyadmin upgraded successfully,

This is a mistake. You should never install stuff when the system is not up to date. That is, you should always pacman -Syu (and resolve any issues) before pacman -S <some-package>.

but when i went to pacman -Syu in full it mentioned a 576 mb install size, and that was files all from cache, where i get a series of glibc messages which is probably related to the non-glibc owned files you mentioned.

So did you deal with them as explained in the wiki instructions you linked to?

the error starts off like this

error: failed to commit transaction (conflicting files)
glibc /lib exists in filesystem
glibc: /usr/lib/ld-2.16.so exists in filesysystem

and so forth for more than the following, ld-linux-x86_64.so.2, libBrokenLocale-2.16.so, all the way to libutil.so.1 (45 in total) then the error message ends like this

gcc: /usr/lib/cpp exists in filesystem
no packages were upgraded.

  if i try

pacman -Syu --ignore glibc,curl

i get only the error

gcc: /usr/lib/cpp exists in filesystem

which wiki were you referring to, the one linked on the news https://wiki.archlinux.org/index.php/De … iki:usrlib, or is there another one?

That's the one. There are also a *lot* of threads about this at this point.

Edit: so i moved out the /var/cache/pacman/pkg contents to a backed up location

Why?

and tried again using --ignore glibc,curl command and still i get the /usr/lib/cpp exists error.  when i run ls -l /usr/lib/cpp i see that its a symlink to /usr/bin/cpp   is there something i can do with this, such as move, or break the symlink temporarily?

What does

pacman -Qo /usr/lib/cpp

give?

To be honest, I think you would be better off reinstalling the system at this point. I think that will be quicker, safer and easier than trying to sort through the mess.

If you don't wish to do that, you will need to be a lot more patient and careful than you are being at the moment. You would need to pick through the system, undo what you can and clear up a great deal of mess. (Starting by uninstalling the packages you just installed on top of a broken system, including any dependencies pacman pulled in.) I'm not sure whether you would need to undo the symlink or whether you could somehow do something else. I suspect you would need to undo it because you probably need files which are currently under /usr/lib (from when you moved them there) back under /lib so that pacman regards them as owned by the packages they come from. But I'm really not sure about any of this and I would hesitate to offer any positive advice other than reinstalling at this point.


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#10 2012-08-16 07:58:39

wolfdogg
Member
From: Portland, OR, USA
Registered: 2011-05-21
Posts: 545

Re: [solved] kernel panic - failed to execute /sbin/init no such file

ill go in order, and just answer the questions, and thanks for the help, its much apprecaited. 

i always run -Syy, or -Syu before i do anything, so it was definetely up to date, unless it kicked back an error, which im trying to get past of course.  various ones have been popping up, and i feel like im making progress, since i have undone changes by reverting curl, that got me back on track to where i was before. i dont know exactly what track that was until i look over previous posts however, lol.

i have followed the wiki instructions, that was before i downgraded curl my own way, as mentioned in the op link.  those instructions didnt seem to help my particular case, i tried most,  if not all of the ideas there that pertained to my issues, including the LD PRELOAD which also gave an error, i wasnt able to do it that way 

i have scraped as many of those threads as i could find, and went through them, the problem is once you take one step, something else happens, so its like having to research them all over again for a different error, which will inevitably take me to those same threads where i will find different scenarios.  eventually im asking for help, as in this post because it starts to get confusing.  I just dont know enough about the arch architecture yet to figure it out on my own in a decent amount of time.   

the reason i moved out the cache was i read in one of the threads that some of the files in the cache might be related to older libs so to make sure i moved them out, instead of deleting them because last time i had to revert curl, i went to the cache and reverted it from there where i thought it was an older version, it ended up not being the correct version which wasted alot of my time, but i wanted to make sure if i needed any old versions of anything i had them in my backup file.  So now that the cache was cleaned this will allow me to be ensured that when i run pacman update this time around being in the unpredictable state that it is in it would be almost guaranteed to rule out any problems that may have been caused by bad cache files. 

pacman -Qo /usr/lib/cpp
/usr/lib/cpp is owned by gcc 4.7.1-1

i dont want to reinstall, that takes me alot longer because i have a ton of configurations related to web development, file server, zfs-fuse pool raid backup drives, samba server, php, apache, phpmyadmin, mysql, database files, web files, and alot of other configs tediously reconfigured, after 3 reinstalls over the last 9 months i would say.   i had hard drive problems once, the other time i simply reset the system when it wasnt responding using ext4 partition types.  So i cant afford another reinstall :-)

i have the patience to fix it, and i believe its not as bad as it seems.  i do have a list of the programs installed recently, those are listed in one of my recent posts on another thread.  So it shouldnt be that hard to get the system back on track with some help. 

thanks again

Last edited by wolfdogg (2012-08-16 08:02:45)


Node.js, PHP Software Architect and Engineer (Full-Stack/DevOps)
GitHub  | LinkedIn

Offline

#11 2012-08-17 00:55:38

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: [solved] kernel panic - failed to execute /sbin/init no such file

It can't have been up to date because we know you get errors when you try to update. I'm just saying: until you run pacman -Syu *without* errors, you shouldn't install new stuff.

I don't know why pacman is complaining that /usr/lib/cpp exists since it seems to be properly owned by gcc.

Perhaps somebody else can give you some advice. I wouldn't know what to suggest at this point.

As I understand it:
- you still have glibc 2.15 installed
- you've moved everything that was in /lib/ to /usr/lib/ manually
- you've then removed the emtpy /lib and created a symlink to usr/lib from lib.

The trouble is, that means that the standard way of figuring out how to deal with files under /lib/ isn't available because you don't know which files are involved. Obviously it isn't everything under /usr/lib but unless you know exactly what you moved there, I'm not sure how to determine that easily. The only thing I can think is that you could take the list of things under /usr/lib (i.e. the output of "ls -R") and you could compare that with the file lists for packages for pacman (/var/lib/pacman/local/*/files) and figure out which ones were under /lib/ rather than /usr/lib. You would also need, I think, to figure out which were not owned according to pacman. Then you could decide how to deal with those according to the wiki instructions. Or you could move everything back, undoing the symlink and then follow the wiki instructions to update glibc.

Note that the wiki specifically deals with the gcc package although the error is different in that case.

Is the cpp link included in /var/lib/pacman/local/gcc-4.7.1-1/files? If not, try following the instructions on the wiki for upgrading gcc (i.e. ignoring dependencies).

But without knowing what has been moved, it is going to be hard to figure out, I think. But plenty of people know much more than I do about both arch and linux generally so hopefully one of them will suggest something...


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#12 2012-08-17 05:24:04

wolfdogg
Member
From: Portland, OR, USA
Registered: 2011-05-21
Posts: 545

Re: [solved] kernel panic - failed to execute /sbin/init no such file

i tried something, you mentioned that i moved out /lib to /usr/lib, and thats what i originally thought, then somebody confused me with /usr needing to be a symlink, but im not sure at what point my system was at so we cant be sure at this.  I thought i would try to reverse it by removing the /lib symlink and copying my backup of the original lib there (/lib)

This gave me a point to successfully run pacman -Syu --ignore glibc, curl, and that worked and returned one error about libcurl.so.4 not being a symlink 

 ldconfig: /usr/lib/libcurl.so.4 is not a symbolic link

.   I hope i didnt foul things up worse though. 

ok back to the wiki, the unowned files in /lib are as follows

unowned files
/lib
libnss_compat-2.15.so
libnss_db-2.15.so
libresolv-2.15.so
libnss_dns-2.15.so
libc-2.15.so
libcidn-2.15.so
libutil-2.15.so
libanl-2.15.so
libcrypt-2.15.so
libnsl-2.15.so
libm-2.15.so
libBrokenLocale-2.15.so
libnss_hesiod-2.15.so
libnss_nisplus-2.15.so
libnss_nis-2.15.so
libpthread-2.15.so
ld-2.15.so
librt-2.15.so
libnss_files-2.15.so
libdl-2.15.so

i ran the following command to get these after verifying that the only owned files were from glibc (2.15 in this case)

$ find /lib -exec pacman -Qo -- {} + | grep 'No package'

so im moving them out to /usr/lib where im sure they are not needed, but only after backing them up so i can have a valid list of them.  the problem is when i move them out, and i run the ls command, i get an error

# ls
-bas: bin/ls: No such file or directory

im guessing the ld-2.15.so is responsible for this, but i would literally have to move one back in at a time to figure out what file was needed, of course thats not important. 

so now i have a dilemma.  the other files that reside in /lib are owned by glibc 2.15 i think it is.  so i think i will backup these files (/lib remainders owned by glibc), and recreate the symlink (lib ->> /usr/lib) so i can have bash back and then ill try the upgrade again to see what i get.  if that fails, i will be sort of stuck.

i also just realized why fsck had ran initially, because once i lose bash, as in this point, i have to reset the computer to reboot, because no basic command will work except for cd until lib or lib symlink is put back properly.

Last edited by wolfdogg (2012-08-17 05:28:03)


Node.js, PHP Software Architect and Engineer (Full-Stack/DevOps)
GitHub  | LinkedIn

Offline

#13 2012-08-17 23:39:02

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: [solved] kernel panic - failed to execute /sbin/init no such file

I don't think that is a good idea. It would be better to move those files back to /lib and deal with them properly.

You can also reference the ld library directly when executing commands to work around the errors. (There are a bunch of threads about this if you need the syntax.)

Or, ideally, if you have busybox installed, you can use that.

Those files should not be unowned. The fact that pacman thinks they are indicates something is very wrong. Some of them should be owned by glibc (such as ld-2.15.so).  You shouldn't just move everything to /usr/lib! Only move stuff if you know for sure it is safe.

Which version of glibc does pacman think you have installed now?


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#14 2012-08-18 05:21:17

wolfdogg
Member
From: Portland, OR, USA
Registered: 2011-05-21
Posts: 545

Re: [solved] kernel panic - failed to execute /sbin/init no such file

ok, before i got your message, i tried to boot into live cd and upgrade that way, i was able to upgrade to glibc 2.16, so pacman -Q glibc says glibc 2.16.0-3  thanks to drop.of.peace

reboot into one of any archlinux live cd's
km (select keyboard layout)
mkdir /mnt/sda3
mount /dev/sda3 /mnt/sda3
pacman -Syy
pacman -Suf glibc -r /mnt/sda3

when i upgraded it i got these two errors
init: /dev/initctl: no such file or directory
ldconfig /lib/libcurl.so.4 is not a symbolic link

and now that i rebooted i can still update, but it always ends with this error.  so it may be the only error for the time being to fix. 

ldconfig: /usr/lib/libcurl.so.4 is not a symbolic link

so if i move those files back to lib, this means ill have to delete the symlink, but since i had downgraded curl (7.26) (at some point one of the updates must have put it back(7.27.0-1)), and upgraded glibc (2.16.0-3) and moved those files to /usr/lib, shouldnt the system be almost stable now that it has a /lib -> /usr/lib symlink in place?  pacman is working but i get the ld error still. 

i dont have busybox installed, have heard of it, but have never used it, can it help?  i probably can install it at this point. 

regarding your comment about the files being owned;
there was no files owned, at all, except by glibc, this is why i felt ok moving them out.  and now glibc has been upgraded, so its new files im assuming are in /usr/lib, so there is no owned files misplaced that i know of, but its highly possible.  maybe thats what the libcurl.so.4 error is? so i just updated curl to make sure, it did need a .49mb download, but since that final update i can now do a pacman -Syu with no errors, with "nothing to do". :-)

i was able to install a new program as well (git), with no errors i have seen yet.  is there any other way i can test if there may be problems?

Last edited by wolfdogg (2012-08-18 05:53:23)


Node.js, PHP Software Architect and Engineer (Full-Stack/DevOps)
GitHub  | LinkedIn

Offline

#15 2012-08-18 14:13:57

cfr
Member
From: Cymru
Registered: 2011-11-27
Posts: 7,130

Re: [solved] kernel panic - failed to execute /sbin/init no such file

Well, I'm glad it worked even if you did force the update of glibc against all advice.

I would check for unowned files in /usr/lib.


CLI Paste | How To Ask Questions

Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L

Offline

#16 2012-08-21 15:10:01

wolfdogg
Member
From: Portland, OR, USA
Registered: 2011-05-21
Posts: 545

Re: [solved] kernel panic - failed to execute /sbin/init no such file

well i wouldnt have been able to do it without your help believe it or not.  you talked me through alot of it.  thanks much!    i will take a look at that in the days to follow and report back. :-)


Node.js, PHP Software Architect and Engineer (Full-Stack/DevOps)
GitHub  | LinkedIn

Offline

Board footer

Powered by FluxBB