Hi
I'm new to ReactOS development and started to look into some issues I noticed with the setup. When I tried to install it I experimented a bit and noticed that you can create extended partitions during the setup. The setup also accepts such a partition for installation, but the actual installations fails with an error. Now I wondered, what would be the correct way to fix it. I checked with Windows 7 installation, and it apparently doesn't allow you to install on an extended partition either, at least it only allows you to create primary partitions. So if this shouldn't be possible, then I would add an error message to the setup, when the user chooses an extended partition. If this should be possible though, I would look into it, why it fails and try to fix it. Not sure if XP or others allow installations on extended partitions, I have to check this (been a long time since I last installed an XP :) ).
regards, Gerhard Gruber
On 01-04-2015 08:12, stack exchange wrote:
If this should be possible though, I would look into it, why it fails and try to fix it. Not sure if XP or others allow installations on extended partitions, I have to check this (been a long time since I last installed an XP
Window$ generally needs to be launched by means of loading the partition boot sector at 0x0000:0x7C00, the old fashioned and DOSy way. As far as a know, there is no hard limitation preventing one from doing so with a logical (i.e. inside an extended) partition, but for some reason, most (if not all) windows versions don't allow that. When you select a logical partition in windows xp setup, what in reallity happens is that NTLDR, the boot sector, and stuff are put in a primiry partition (that must exist and be the active partition), while all the rest of the OS is put in the partition you select.
IMHO, ReactOS should not try to clone this "feature"... :-)
JJ
OK. So I will put en error message, that it can not be installed on an extended partition. Which is, at least in theory, the same as in Windows 7, then. I guess with a hack you can still do it, but apparently it's not the usuall way.
Am 02.04.2015 um 01:39 schrieb João Jerónimo:
On 01-04-2015 08:12, stack exchange wrote:
If this should be possible though, I would look into it, why it fails and try to fix it. Not sure if XP or others allow installations on extended partitions, I have to check this (been a long time since I last installed an XP
Window$ generally needs to be launched by means of loading the partition boot sector at 0x0000:0x7C00, the old fashioned and DOSy way. As far as a know, there is no hard limitation preventing one from doing so with a logical (i.e. inside an extended) partition, but for some reason, most (if not all) windows versions don't allow that. When you select a logical partition in windows xp setup, what in reallity happens is that NTLDR, the boot sector, and stuff are put in a primiry partition (that must exist and be the active partition), while all the rest of the OS is put in the partition you select.
IMHO, ReactOS should not try to clone this "feature"... :-)
JJ
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
An extended partition is a container for any number of actual partitions. Since the normal BIOS boot process uses the master partition table, which only contains an entry for the extended partition, not for the subpartitions, it cannot handle it. This can in theory be overcome, but MS has never bothered, so it's not worth it.
Am 04.04.2015 um 13:25 schrieb stack exchange:
OK. So I will put en error message, that it can not be installed on an extended partition. Which is, at least in theory, the same as in Windows 7, then. I guess with a hack you can still do it, but apparently it's not the usuall way.
Am 02.04.2015 um 01:39 schrieb João Jerónimo:
On 01-04-2015 08:12, stack exchange wrote:
If this should be possible though, I would look into it, why it fails and try to fix it. Not sure if XP or others allow installations on extended partitions, I have to check this (been a long time since I last installed an XP
Window$ generally needs to be launched by means of loading the partition boot sector at 0x0000:0x7C00, the old fashioned and DOSy way. As far as a know, there is no hard limitation preventing one from doing so with a logical (i.e. inside an extended) partition, but for some reason, most (if not all) windows versions don't allow that. When you select a logical partition in windows xp setup, what in reallity happens is that NTLDR, the boot sector, and stuff are put in a primiry partition (that must exist and be the active partition), while all the rest of the OS is put in the partition you select.
IMHO, ReactOS should not try to clone this "feature"... :-)
JJ
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Hello All,
I am not sure, but I have feeling, that if you have none system on some of promary partitions and then place another copy on extended then it can work and may it be, that at the time where I have installed my latest (Windows NT or 2k) I have used such setup. I have feeling, that NTLDR recognizes partinion numbers above 4, but there is some difference in the way how partition numbers are counted when compared to Linux. Probably that does not work with installer but when another system partition specification is manually added to boot.ini on primary partition then it can work. But I am not sure what is compatibility between NTLDR versions and Windows versions for last 15 years of Windows evolution. I remember that I had to correct machine code of WinNT FAT boot sector code at that days to overcome overflow for larger sector number which caused overflow exception in NTLDR load/
Anyway, if are you speaking about installing /ReactOS to extended partition then I suggest to allow such option at least in expert mode and even installation of freeldr.sys and FAT bootsector into extended partition is reasonable because even if Microsoft loader cannot be used to load foreign system from extended partition. Any modern boot loader can chain to every FAT partition which is on any media. Artificial blocking of installation of ReactOS to extended partition can mean problems with its coexistence with other primary system when there is not free primary partition available.
Best wishes,
Pavel
On Saturday 04 of April 2015 15:23:06 Timo Kreuzer wrote:
An extended partition is a container for any number of actual partitions. Since the normal BIOS boot process uses the master partition table, which only contains an entry for the extended partition, not for the subpartitions, it cannot handle it. This can in theory be overcome, but MS has never bothered, so it's not worth it.
Am 04.04.2015 um 13:25 schrieb stack exchange:
OK. So I will put en error message, that it can not be installed on an extended partition. Which is, at least in theory, the same as in Windows 7, then. I guess with a hack you can still do it, but apparently it's not the usuall way.
Am 02.04.2015 um 01:39 schrieb João Jerónimo:
On 01-04-2015 08:12, stack exchange wrote:
If this should be possible though, I would look into it, why it fails and try to fix it. Not sure if XP or others allow installations on extended partitions, I have to check this (been a long time since I last installed an XP
Window$ generally needs to be launched by means of loading the partition boot sector at 0x0000:0x7C00, the old fashioned and DOSy way. As far as a know, there is no hard limitation preventing one from doing so with a logical (i.e. inside an extended) partition, but for some reason, most (if not all) windows versions don't allow that. When you select a logical partition in windows xp setup, what in reallity happens is that NTLDR, the boot sector, and stuff are put in a primiry partition (that must exist and be the active partition), while all the rest of the OS is put in the partition you select.
IMHO, ReactOS should not try to clone this "feature"... :-)
JJ
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Hi,
This misfunctionality has 2 pieces: Reactos unable to start kernel from extended partition, and the installer inability to handle extended partitions
1 MS NT+ supports installing onto the extended partition for ages, including, yes, Windows 7 So this is requirement if only speaking from formal point of view
2 This feature is extreamely useful for any Windows user-- especially for ones with busy all primary partitions: 2 backup partitions, one C: and one just anything other, Linux or OsX - and you very need extended partition to keep Reactos
3 This feature is extreamely needed for just any real-life (==real hardware) Reactos tester and developer: see p.2 Plus starting from extended partition will allow to have multiple copies of reactos installations, which is bread and water for testers. The fact this feature is absent just shows where real-life usage by testers of Ros is: just nowhere.
Regards, M.
On Sun, Apr 5, 2015 at 12:47 AM, Pavel Pisa ppisa4lists@pikron.com wrote:
Hello All,
I am not sure, but I have feeling, that if you have none system on some of promary partitions and then place another copy on extended then it can work and may it be, that at the time where I have installed my latest (Windows NT or 2k) I have used such setup. I have feeling, that NTLDR recognizes partinion numbers above 4, but there is some difference in the way how partition numbers are counted when compared to Linux. Probably that does not work with installer but when another system partition specification is manually added to boot.ini on primary partition then it can work. But I am not sure what is compatibility between NTLDR versions and Windows versions for last 15 years of Windows evolution. I remember that I had to correct machine code of WinNT FAT boot sector code at that days to overcome overflow for larger sector number which caused overflow exception in NTLDR load/
Anyway, if are you speaking about installing /ReactOS to extended partition then I suggest to allow such option at least in expert mode and even installation of freeldr.sys and FAT bootsector into extended partition is reasonable because even if Microsoft loader cannot be used to load foreign system from extended partition. Any modern boot loader can chain to every FAT partition which is on any media. Artificial blocking of installation of ReactOS to extended partition can mean problems with its coexistence with other primary system when there is not free primary partition available.
Best wishes,
PavelOn Saturday 04 of April 2015 15:23:06 Timo Kreuzer wrote:
An extended partition is a container for any number of actual partitions. Since the normal BIOS boot process uses the master partition table, which only contains an entry for the extended partition, not for the subpartitions, it cannot handle it. This can in theory be overcome, but MS has never bothered, so it's not worth it.
Am 04.04.2015 um 13:25 schrieb stack exchange:
OK. So I will put en error message, that it can not be installed on an extended partition. Which is, at least in theory, the same as in Windows 7, then. I guess with a hack you can still do it, but apparently it's not the usuall way.
Am 02.04.2015 um 01:39 schrieb João Jerónimo:
On 01-04-2015 08:12, stack exchange wrote:
If this should be possible though, I would look into it, why it fails and try to fix it. Not sure if XP or others allow installations on extended partitions, I have to check this (been a long time since I last installed an XP
Window$ generally needs to be launched by means of loading the partition boot sector at 0x0000:0x7C00, the old fashioned and DOSy way. As far as a know, there is no hard limitation preventing one from doing so with a logical (i.e. inside an extended) partition, but for some reason, most (if not all) windows versions don't allow that. When you select a logical partition in windows xp setup, what in reallity happens is that NTLDR, the boot sector, and stuff are put in a primiry partition (that must exist and be the active partition), while all the rest of the OS is put in the partition you select.
IMHO, ReactOS should not try to clone this "feature"... :-)
JJ
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Am 05.04.2015 um 10:36 schrieb Minas Abrahamyan:
This misfunctionality has 2 pieces: Reactos unable to start kernel from extended partition, and the installer inability to handle extended partitions
1 MS NT+ supports installing onto the extended partition for ages, including, yes, Windows 7 So this is requirement if only speaking from formal point of view
2 This feature is extreamely useful for any Windows user-- especially for ones with busy all primary partitions: 2 backup partitions, one C: and one just anything other, Linux or OsX - and you very need extended partition to keep Reactos
3 This feature is extreamely needed for just any real-life (==real hardware) Reactos tester and developer: see p.2 Plus starting from extended partition will allow to have multiple copies of reactos installations, which is bread and water for testers.
OK. So since this is a rather self contained part, I would like to fix this, and make it work so that the installer can handle it. Apparently nobody is working on it and I already started looking into it anyway. Don't know if anybody will look into the kernel part, but I can try it after fixing the installation issue first.
mfg, Gerhard Gruber
On 05-04-2015 09:36, Minas Abrahamyan wrote:
- This feature is extreamely needed for just any real-life (==real
hardware) Reactos tester and developer: see p.2 Plus starting from extended partition will allow to have multiple copies of reactos installations, which is bread and water for testers. The fact this feature is absent just shows where real-life usage by testers of Ros is: just nowhere.
Hi,
The point here is that what is seen in the project regarding testing is that it is supposed to be done in virtual hardware. Some years ago the project supported "make install", which just created the ReactOS folder somewhere in your filesystem, allowing you to copy it to your ROS install partition, effectively supporting a form of "manual" installation. In those times, I used to test the OS in real hardware, something which is much more funny, and much more accurate, than testing it in a virtual "machine".
Since then, it became a bit more complicated to test it on real hardware, because we never know whether the installer is handling partitioning correctly, and one risks screwing the rest of the disk.
Regarding the boot process itself, one can say that "chainloading" towards an logical partition is something largely uncommon and unsupported. Firstly, only traditional PC OSs (Windows, DOS, perhaps OS2?) rely on chainloading to bootstrap, and in those cases (as far as I have tested) the chainloading needs to be done in very specific conditions (correct sector address in CPU register X, etc, way too fragile and non-uniform across OSs) to succeed. Secondly, Linux simply ignores the chainloading idea as a boot method completely. In NTLDR-based kernels, what is done is that the part of the boot process that relies on chainloading (i.e. NTLDR) must be in a primary (and active?) partition, so you still need a primary partition, even if the rest of the OS is in a logical partition.
JJ
from Minas Abrahamyan:
This misfunctionality has 2 pieces: Reactos unable to start kernel from extended partition, and the installer inability to handle extended partitions
1 MS NT+ supports installing onto the extended partition for ages, including, yes, Windows 7 So this is requirement if only speaking from formal point of view
2 This feature is extreamely useful for any Windows user-- especially for ones with busy all primary partitions: 2 backup partitions, one C: and one just anything other, Linux or OsX - and you very need extended partition to keep Reactos
3 This feature is extreamely needed for just any real-life (==real hardware) Reactos tester and developer: see p.2 Plus starting from extended partition will allow to have multiple copies of reactos installations, which is bread and water for testers. The fact this feature is absent just shows where real-life usage by testers of Ros is: just nowhere.
Having hard disks partitioned GPT prevents me from even testing ReactOS.
But if ReactOS could be installed to a GPT partition, there is the risk that it could run awry and mess the disk including other OS installations.
It would be good if ReactOS could be installed to USB stick, better still if ReactOS could be built and installed to a USB stick straight from the build system. FreeBSD and NetBSD have this capability.
There might be a lower risk to the rest of the system from ReactOS on a USB stick than on a hard disk, especially if ReactOS has immature GPT support.
Conceivably I could order a low-price refurbished small SATA hard disk, install in a Sabrent USB 2.0 and eSATA enclosure, but using eSATA, and use that for ReactOS, FreeDOS and possibly OpenBSD too.
Then I would need a boot loader that would trick FreeDOS and ReactOS, whichever was being booted, that its partition was the first on the disk, even if it was the second.
Tom
On 06-04-2015 05:55, Thomas Mueller wrote:
Then I would need a boot loader that would trick FreeDOS and ReactOS, whichever was being booted, that its partition was the first on the disk, even if it was the second.
Hi,
I think that that "tricking" thing only works as long as the OS is using an external API to access the disk. When the OS uses real drivers, no one can trick it. Unless it is the PCI or the physical drive itself that supports the "tricking".
JJ
Am 05.04.2015 um 10:36 schrieb Minas Abrahamyan:
2 This feature is extreamely useful for any Windows user-- especially for ones with busy all primary partitions: 2 backup partitions, one C: and one just anything other, Linux or OsX - and you very need extended partition to keep Reactos
3 This feature is extreamely needed for just any real-life (==real hardware) Reactos tester and developer: see p.2 Plus starting from extended partition will allow to have multiple copies of reactos installations, which is bread and water for testers. The fact this feature is absent just shows where real-life usage by testers of Ros is: just nowhere.
I implemented this functionallity, so the installer can now create one or more logical partitions and can also install it there. There are two issues though:
1. When multiple logical drives exist and they are deleted the installer crashes. This is IMO just a minor problem, because you can still install, yu just have to think ahead of what you want. I will look into this later. 2. This is IMO the more important issue. I verified with a GParted ISO the partitions and they are corrupted. At first I thought I did something wrong, but after working on this for several weeks now I'm not so convinced anymore. When I dump the partition table with my code, it looks exactly as the dump that it would generate when I create the same layout with gparted, so it should work. So my assumption is that the implementation in NtDeviceIoControlFile(IOCTL_DISK_SET_DRIVE_LAYOUT) may be the cause. On the other hand, when I create only primary partitions (which the existing code can do) then gparted doesn't report any errors, so it may only be the case when dealing with logical partitions.
The question is now, should I upload the current code as a patch as it is right now, with these known issues, or should I try to fix it completely before I upload it?
If I should upload it, I wonder how long it usually takes until it is commited to the repository, because I submitted a patch in this areay a month ago, which still has not made it to SVN. Or when/how do you get write access to SVN?
Upload the patch to JIRA, create a new issue entry if none exists for this. It's the preferred way to contribute to the project. People only get write access after they have proved themselves with writing patches, and the team trusts them to have some minimal quality and behaviour standards. ;P
We have few knowledgeable developers so the process sometimes takes a bit of time. If we missed a patch, feel free to join IRC and slap some of us there.
On 30 April 2015 at 19:51, stack exchange sparhawk@gmx.at wrote:
Am 05.04.2015 um 10:36 schrieb Minas Abrahamyan:
2 This feature is extreamely useful for any Windows user-- especially for ones with busy all primary partitions: 2 backup partitions, one C: and one just anything other, Linux or OsX - and you very need extended partition to keep Reactos
3 This feature is extreamely needed for just any real-life (==real hardware) Reactos tester and developer: see p.2 Plus starting from extended partition will allow to have multiple copies of reactos installations, which is bread and water for testers. The fact this feature is absent just shows where real-life usage by testers of Ros is: just nowhere.
I implemented this functionallity, so the installer can now create one or more logical partitions and can also install it there. There are two issues though:
- When multiple logical drives exist and they are deleted the installer
crashes. This is IMO just a minor problem, because you can still install, yu just have to think ahead of what you want. I will look into this later. 2. This is IMO the more important issue. I verified with a GParted ISO the partitions and they are corrupted. At first I thought I did something wrong, but after working on this for several weeks now I'm not so convinced anymore. When I dump the partition table with my code, it looks exactly as the dump that it would generate when I create the same layout with gparted, so it should work. So my assumption is that the implementation in NtDeviceIoControlFile(IOCTL_DISK_SET_DRIVE_LAYOUT) may be the cause. On the other hand, when I create only primary partitions (which the existing code can do) then gparted doesn't report any errors, so it may only be the case when dealing with logical partitions.
The question is now, should I upload the current code as a patch as it is right now, with these known issues, or should I try to fix it completely before I upload it?
If I should upload it, I wonder how long it usually takes until it is commited to the repository, because I submitted a patch in this areay a month ago, which still has not made it to SVN. Or when/how do you get write access to SVN?
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Am 30.04.2015 um 20:06 schrieb David Quintana (gigaherz):
Upload the patch to JIRA, create a new issue entry if none exists for this. It's the preferred way to contribute to the project. People only get write access after they have proved themselves with writing patches, and the team trusts them to have some minimal quality and behaviour standards. ;P
We have few knowledgeable developers so the process sometimes takes a bit of time. If we missed a patch, feel free to join IRC and slap some of us there.
I uploaded the patch now: https://jira.reactos.org/browse/CORE-9641
The other patch I created a month ago, which is also for the setup, is this one: https://jira.reactos.org/browse/CORE-9453
I also documented the known issues in the report. I hope the patch will be applied soon, because I'd hate to have to many local changes without syncing to the TRUNK.
Thanks for uploading the patch; I got the answer relating the kernel part. As far as I can see your two patches are here integrated in one bigger.
On Fri, May 1, 2015 at 10:56 PM, stack exchange sparhawk@gmx.at wrote:
Am 30.04.2015 um 20:06 schrieb David Quintana (gigaherz):
Upload the patch to JIRA, create a new issue entry if none exists for this. It's the preferred way to contribute to the project. People only get write access after they have proved themselves with writing patches, and the team trusts them to have some minimal quality and behaviour standards. ;P
We have few knowledgeable developers so the process sometimes takes a bit of time. If we missed a patch, feel free to join IRC and slap some of us there.
I uploaded the patch now: https://jira.reactos.org/browse/CORE-9641
The other patch I created a month ago, which is also for the setup, is this one: https://jira.reactos.org/browse/CORE-9453
I also documented the known issues in the report. I hope the patch will be applied soon, because I'd hate to have to many local changes without syncing to the TRUNK.
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Hi,
Thanks for working on that, it was long time anybody is touching here (in spite of it is very important part, as I described);
Please share your work in form of patch in Jira, as attachment, and I will look at it;
You are right in that there is a problem with ROS organizing the patch reception and/ or adoption.
And a question:
Does your code only install on the extended partition? Haven't you looked at that kernel part (ntoskrnl) that loads the OS, or maybe did something there?
Regards, -M
On Thu, Apr 30, 2015 at 9:51 PM, stack exchange sparhawk@gmx.at wrote:
Am 05.04.2015 um 10:36 schrieb Minas Abrahamyan:
2 This feature is extreamely useful for any Windows user-- especially for ones with busy all primary partitions: 2 backup partitions, one C: and one just anything other, Linux or OsX - and you very need extended partition to keep Reactos
3 This feature is extreamely needed for just any real-life (==real hardware) Reactos tester and developer: see p.2 Plus starting from extended partition will allow to have multiple copies of reactos installations, which is bread and water for testers. The fact this feature is absent just shows where real-life usage by testers of Ros is: just nowhere.
I implemented this functionallity, so the installer can now create one or more logical partitions and can also install it there. There are two issues though:
- When multiple logical drives exist and they are deleted the installer
crashes. This is IMO just a minor problem, because you can still install, yu just have to think ahead of what you want. I will look into this later. 2. This is IMO the more important issue. I verified with a GParted ISO the partitions and they are corrupted. At first I thought I did something wrong, but after working on this for several weeks now I'm not so convinced anymore. When I dump the partition table with my code, it looks exactly as the dump that it would generate when I create the same layout with gparted, so it should work. So my assumption is that the implementation in NtDeviceIoControlFile(IOCTL_DISK_SET_DRIVE_LAYOUT) may be the cause. On the other hand, when I create only primary partitions (which the existing code can do) then gparted doesn't report any errors, so it may only be the case when dealing with logical partitions.
The question is now, should I upload the current code as a patch as it is right now, with these known issues, or should I try to fix it completely before I upload it?
If I should upload it, I wonder how long it usually takes until it is commited to the repository, because I submitted a patch in this areay a month ago, which still has not made it to SVN. Or when/how do you get write access to SVN?
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Am 01.05.2015 um 21:02 schrieb Minas Abrahamyan:
Does your code only install on the extended partition? Haven't you looked at that kernel part (ntoskrnl) that loads the OS, or maybe did something there?
Yes, it installs on the logical partition now. It can't boot though, because it crashes to the debugger. I suppose that is because of the kernel issue involved, but I hadn't looked at that yet. I wanted to work on the issues that I described, before I take a look at the kernel code. I hate to have code with bugs, and the partitions should be correct when inspecting with gparted, so this is what I wanted to look at next.
I mounted the volume in linux though and the files look ok.
Am 30.04.2015 um 19:51 schrieb stack exchange:
I implemented this functionallity, so the installer can now create one or more logical partitions and can also install it there. There are two issues though:
- When multiple logical drives exist and they are deleted the
installer crashes. This is IMO just a minor problem, because you can still install, yu just have to think ahead of what you want. I will look into this later. 2. This is IMO the more important issue. I verified with a GParted ISO the partitions and they are corrupted. At first I thought I did something wrong, but after working on this for several weeks now I'm not so convinced anymore. When I dump the partition table with my code, it looks exactly as the dump that it would generate when I create the same layout with gparted, so it should work. So my assumption is that the implementation in NtDeviceIoControlFile(IOCTL_DISK_SET_DRIVE_LAYOUT) may be the cause. On the other hand, when I create only primary partitions (which the existing code can do) then gparted doesn't report any errors, so it may only be the case when dealing with logical partitions.
In my JIRA issue (https://jira.reactos.org/browse/CORE-9641) I reported four problems with this patch.
Two of them are now fixed with the patch that I attached. This is the issue that setup crashed when deleting logical partitions, and the other one was that you couldn't create a logical partition by pressing ENTER, you had to use the 'L' key and create it manually first.
In my opinion the problems of this issue are resolved with that. The other two problems ("can't boot from a logical partition" and "corrupted partition layout when using logical partitions") are seperate items and I would rather create a seperate issue for each of them. From my side I would say that this issue can be closed (after accepting the patch and testing it).
mfg, Gerhard