From owner-freebsd-amd64@FreeBSD.ORG Fri Dec 23 14:44:28 2005 Return-Path: X-Original-To: amd64@freebsd.org Delivered-To: freebsd-amd64@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 406E316A41F; Fri, 23 Dec 2005 14:44:28 +0000 (GMT) (envelope-from ghelmer@palisadesys.com) Received: from magellan.palisadesys.com (magellan.palisadesys.com [192.188.162.211]) by mx1.FreeBSD.org (Postfix) with ESMTP id 75DB443D8A; Fri, 23 Dec 2005 14:44:20 +0000 (GMT) (envelope-from ghelmer@palisadesys.com) Received: from [172.16.1.142] (cetus.palisadesys.com [192.188.162.7]) (authenticated bits=0) by magellan.palisadesys.com (8.13.4/8.13.4) with ESMTP id jBNEiEXK070978 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 23 Dec 2005 08:44:17 -0600 (CST) (envelope-from ghelmer@palisadesys.com) Message-ID: <43AC0D3F.5050902@palisadesys.com> Date: Fri, 23 Dec 2005 08:44:15 -0600 From: Guy Helmer User-Agent: Mozilla Thunderbird 1.0.7 (Windows/20050923) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Ruslan Ermilov References: <20051222220752.GB45319@ip.net.ua> In-Reply-To: <20051222220752.GB45319@ip.net.ua> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Palisade-MailScanner-Information: Please contact the ISP for more information X-Palisade-MailScanner: Found to be clean X-Palisade-MailScanner-From: ghelmer@palisadesys.com Cc: amd64@freebsd.org Subject: Re: Updating i386 in-place to amd64 X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Dec 2005 14:44:28 -0000 Ruslan Ermilov wrote: >Hi there, > >Yesterday, I was playing updating the i386 6.0-STABLE in-place to >amd64 (the system was initially running on i386 core, then the >disk was moved to the Opteron server). It succeeded, but there >were some fun. The idea I had is to: > >1) cross-build world and kernel >2) install kernel >3) install32 >4) reboot >5) install world >6) update /etc etc. >7) remove i386 dust > >1-3 went fine. On reboot, I was hoping that COMPAT_IA32 would be >enough to run shell, make and mount* tools. I booted into single >user. When it asked me to press ENTER for /bin/sh, I did this; >it failed with SIGBUS. I have waited some seconds, and when it >asked it again, this time it worked (I verified several times, and >it always worked like this). i386 mount(8) did NOT work, so I >had to use the "rescue" binary from /usr/obj to NFS mount /usr/src. >After that, I fooled make(1) into thinking it runs on i386 and >did an install of cross-built amd64 world (env MACHINE_ARCH=i386 >MACHINE=i386 TARGET_ARCH=amd64 make installworld). This worked. >I then updated /etc etc. from i386 to amd64 (by hand), and now >I'm running a native amd64 world+kernel. > >P.S. It would be nice to be able to run i386 world under the >amd64 kernel, but a lot of things don't just work (of course >mainly syscalls). > >P.P.S. It would be nice to win a prize. :-) > > >Cheers, > > Wow, I'm impressed. I was trying to do an automated, in-place i386 to amd64 upgrade (without source, though) back in August and never got to the point of successfully booting an amd64 kernel running i386 binaries. I did get a good idea, though, that I never followed up on: Matthew Fuller suggested hijacking the swap partition for a temporary amd64 root partition (message id 20050809124756.GA27425@over-yonder.net). Guy Helmer